我在运行时将一些JCheckBox组件添加到JPanel
我的问题是所有这些组件都添加在同一个地方
所以他们互相展示
有没有办法将它们设置为自动定位?
我的意思是他们在JPanel的前一个组件旁找到了一个位置,我摆脱了手动定位它们。
由于
答案 0 :(得分:2)
简短的回答是使用LayoutManager。但是,LayoutManager的工作方式根据您的需要而有很大差异。因此,您需要知道如何布置动态复选框。您的UI中的可扩展部分将吸收可能的N个复选框。如果不知道如何在视觉上布局组件,我无法真正建议您哪种布局管理器最适合您的情况。
关于LayoutManagers的一般建议是TableLayout非常好的动态组件。它非常直接,而且非常强大。比GridBagLayout更好的表现和更少的代码需要,比说SpringLayout或MigLayout更容易理解。得到它,学习如何使用它,然后真的问自己。
我是否真的需要动态构建我的复选框UI,或者我可以使用CardLayout中的一组简单面板完成此操作,并根据某些输入在它们之间切换(这比运行时控件的动态布局简单得多)
http://java.net/projects/tablelayout
JPanel panel = new JPanel( new TableLayout(...) ); // sets the LayoutManager used by JPanel
panel.add( new JCheckBox(), "1 2" ); // add to row 1 column 2
你明白了。