我使用2行6列的网格布局。第一列是标签,第二列是组合。我的问题是
根据标签的大小,组合框的大小也会增加。我想要一个稳定尺寸的combo?我应该使用哪种布局?我想要像这样的设计
*标签1:组合1标签2:组合2标签3:组合3标签4:text1标签5:text2标签6:text3*
-
对于
GridLayout
,您可以使用JComboBox#setPrototypeDisplayValue,然后您可以在屏幕上非常灵活地设置JComboBox
的初始大小 -
您可以使用
SpringLayout
或GridBagLayout
-
使用今天的自定义
LayoutManagers
,因为MigLayout
是例如 -
注意,关于选择正确的
LayoutManager
,一切都取决于内容是否应该使用容器调整大小
遍历所有标签,并为所有标签设置最大大小。
Label 1 |________________|
Label Label 2 |________________|
Label Label Label 3 |________________|
Label 1 |________________|
如果您必须手动编写布局代码,并且使用第三方库没有问题,那么您可以尝试Migliout。
您也可以使用图形编辑器来布局面板。有两个免费工具可以做得很好(据我所知):NetBeans附带的工具和Eclipse WindowBuilder。
您可以使用GridBagLayout,将组合框的GridBagConstrints.fill设置为水平
在GridLayout
中,所有瓦片都具有相同的大小。
您应该考虑使用GridBagLayout
。您还需要为每个GUI元素使用GridBagConstraints
来指定其位置。