使用MigLayout时JTextField和按钮未按预期占满列宽如何解决
解决方法
你需要修改两处配置即可达到预期效果:
- 给MigLayout添加列约束,指定第二列可自动拉伸、内部组件自动填充单元格
将原布局实例化代码:
MigLayout layout = new MigLayout("wrap 2, debug");
修改为:
// 第二个参数为列约束:第一列宽度自适应内容,第二列支持水平拉伸且组件填充单元格 MigLayout layout = new MigLayout("wrap 2, debug", "[][grow, fill]");
- 给跨列的提交按钮添加水平填充约束
将原按钮添加代码:
panel.add(addDice, "span");
修改为:
// span代表跨两列,growx代表组件水平方向填充整个单元格 panel.add(addDice, "span, growx");
如果不想全局配置列约束,也可以在添加每个JTextField时单独指定填充属性,例如:
panel.add(maxDiceInput, "growx");
其余文本框也同理添加相同约束即可。
修改后运行即可看到文本框占满第二列宽度、提交按钮占满整行宽度的效果。
内容的提问来源于stack exchange,提问作者bjk116
相关产品推荐
相关产品推荐

