有点恐慌。过去两个月一直从事一个项目。我几天前更换了一些盒子尺寸并保存了它。今天早上重新加载它,窗口大小变得非常小,我得到了错误:
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
任何想法??!?!?!?!
答案 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的差异工具应该很快就能揭示出来