GUI在更改大小后不会加载

时间:2012-07-31 13:26:48

标签: java user-interface layout

有点恐慌。过去两个月一直从事一个项目。我几天前更换了一些盒子尺寸并保存了它。今天早上重新加载它,窗口大小变得非常小,我得到了错误:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: javax.swing.JButton[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.synth.SynthBorder@ce623f,flags=288,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=Search,defaultCapable=true] is not attached to a horizontal group

任何想法??!?!?!?!

1 个答案:

答案 0 :(得分:2)

错误消息说明了一切。您有一个组件(JButton)已添加到垂直组但忘记将其添加到GroupLayout中的水平组中。请参阅LayoutManager教程的How to use GroupLayout部分和相应的示例代码

layout.setHorizontalGroup(
   layout.createSequentialGroup()
      .addComponent(c1)
      .addComponent(c2)
      .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
           .addComponent(c3)
           .addComponent(c4))
);
layout.setVerticalGroup(
   layout.createSequentialGroup()
      .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
           .addComponent(c1)
           .addComponent(c2)
           .addComponent(c3))
      .addComponent(c4)
);

如果您要从第一行删除addComponent(c3)部分,您将收到类似的例外。

当然,在没有看到你的代码的情况下,我无法确定你项目中的确切位置,但是在这两个版本之间进行比较的一个像样的基于VCS的差异工具应该很快就能揭示出来