问题描述
我正在尝试制作一个类似于表单的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。