我在JPanel中使用FlowLayout Manager
。我有很多Label和TextField / JComboBox组合。像
调整JPanel的大小
我已经在我的JPanel上设置了FlowLayout,并且每当调整面板大小时,而不是逐个将组件带到下一行,我希望它将我的Label + Textfield一起带到下一行。
是否可以制作组或类似的东西,这样我的每个Label + Textfield都被视为单个组件,当面板调整大小时,这两个组件都会混合在一起。
我知道的一种方法是将每个标签+文本字段放在每个单独的JPanel中,然后将这些JPanel放在我的主FlowLayout JPanel中,但之后我将不得不做很多工作因此想知道java中是否有一些选项对此?
答案 0 :(得分:0)
Flowlayout是在您的情况下使用的错误布局。
最好的布局可能是 GridBagLayout 。您可以为文本字段定义一致的宽度,并为标签定义一致的锚点(即锚定在右侧)。
以下是您如何设置'模型的示例。 label:
GridBagConstraints gbc = new GridBayConstraints();
gbc.gridx = 2;
gbc.gridy = 1;
gbc.anchor = GridBagLayout.EAST
panel.add(modelLabel, gbc);