今天我有一个小问题,这可能是没有什么优点:)Java - 我应该使用什么样的Swing布局?
我想在一条水平线中使用我的Swing组件。我使用FlowLayout并根据框架大小改变了componentResized()上的组件大小,但它经常被窃听(有时最后一个组件放在下一行)...我决定使用BoxLayout,但在代码上:
down=new JPanel(new BoxLayout(down,BoxLayout.X_AXIS));
down.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10));
down.add(Box.createHorizontalGlue());
down.setPreferredSize(new Dimension(300,35));
它崩溃了:
Exception in thread "AWT-EventQueue-0" java.awt.AWTError: BoxLayout can't be shared
at javax.swing.BoxLayout.checkContainer(Unknown Source)
at javax.swing.BoxLayout.invalidateLayout(Unknown Source)
at javax.swing.BoxLayout.addLayoutComponent(Unknown Source)
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at ButtonFrame.<init>(chat.java:278)
at chat$1.run(chat.java:20)
aso...
我不知道该怎么做,也许我可以做的FlowLayout无法使第二排,或使箱布置工作?
感谢您的回复!
可能的重复:http://stackoverflow.com/questions/761341/boxlayout-cant-be-shared-error – Yossale 2012-01-17 15:15:41