Java GroupLayout中的IllegalStateException

Java GroupLayout中的IllegalStateException,java,exception,grouplayout,Java,Exception,Grouplayout,我对我的面板使用GroupLayout: GroupLayout layout = new GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup() .addComponent(title_panel) .addComponent(subtitle_panel) ); layout.setVerticalG

我对我的面板使用
GroupLayout

GroupLayout layout = new GroupLayout(this);
this.setLayout(layout);

layout.setHorizontalGroup(
    layout.createParallelGroup()
        .addComponent(title_panel)
        .addComponent(subtitle_panel)
    );

layout.setVerticalGroup(
    layout.createSequentialGroup()
        .addComponent(title_panel)
        .addComponent(subtitle_panel)
    );
即使我同时定义了水平组和垂直组,它仍然会给我一个

java.lang.IllegalStateException
但并非总是如此。有时会,有时不会。即使存在此异常,我的GUI也可以工作并显示我想要的内容

我想我有一个开始的答案。当我第一次显示面板所在的框架时,我没有此异常。但是,当我第二次显示它时,它给了我这个异常。这就像程序将我的groupLayout的一部分,或者类似的东西,放在框架的两次启动之间

这是相当令人沮丧的,即使它工作,尽管这个例外^^我不喜欢当我自己的代码巨魔我

下面是我得到的错误示例(derp是我的projet的名称,Panel是从JPanel继承的类):


我认为问题来自这两行代码,“this”指的是类的实例,GroupLayout的父级必须是Swing容器,例如面板

GroupLayout layout = new GroupLayout(this);
this.setLayout(layout);
试试这样的

JComponent panel = ...;
GroupLayout layout = new GroupLayout(panel);
panel.setLayout(layout);

事实上,这段代码是在一个继承自JPanel的类中,所以“this”指的是面板本身。你说它有时这样做,而不是其他时候——它这样做的条件是什么?同一程序的连续运行?在一些代码更改之后?一个小的跑步例子在这里会很好。我甚至不知道!看来没有什么特别的条件。如果有的话,我还没有找到。此面板所在的框架连接到服务器。重新启动服务器后第一次启动框架时,我认为框架没有创建异常。但不到5分钟后,我重新启动了服务器,当我启动框架时出现了异常-u-,当我更改一些代码时,有时出现,有时不出现。。。
JComponent panel = ...;
GroupLayout layout = new GroupLayout(panel);
panel.setLayout(layout);