Java摆动按钮的网格,每列具有不同的调整大小规则

问题描述

我正在尝试制作一个类似于表单的UI面板(我未使用GUI设计器)。左侧包含标签,右侧包含文本字段,等等。我要制作它,以便在调整大小时,只有正确的大小(文本字段会改变形状)。

当前,我正在使用ids = MemberData.get('MemberDetails',{}).get('ID') if isinstance(ids,dict): id_list = [ids['ID']] elif isinstance(ids,list): id_list = [x['ID'] for x in ids] else: # handle an error id_list = [] ,每行一个GridLayout(x,2)JLabel

因此,在调整大小时,我想做到这一点
来自JTextField
[(JLabel)|(JTextField)]
不是[(JLabel)|( JTextField )]

另外,当然,我需要确保所有行始终匹配。

解决方法

如果要使用单个布局管理器,则可以使用GridBagLayout

对于第二列中的组件,可以将weightx约束设置为1.0f。这意味着任何多余的空间都只会分配给该组件。

How to Use GridBagLayout上的Swing教程中阅读本节。 Specifying Constraints上的主题将更详细地说明此约束的工作原理。

,

GridLayout不能用于此目的。使用GridBagLayout或更易于使用的布局管理器,例如MigLayout。