我正在处理一个包含3列和4行的MigLayout表单,如下所示:
"wrap 3",
"[15%] 15px [45%] 15px [40%]",
"20 [] 15 [] 15 [grow,fill] 15 []"
现在我的目标是让它看起来像这样:
.------------------------------------.
| 15% | 45% | 40% |
|------------------------------------|
| | | |
|------------------------------------|
| | | |
|------------------------------------|
| button,button |
`------------------------------------´
我希望最后一行的按钮居中,所以我假设它首先要求我将第4行的3列划分为按钮上的"span 3, center"
组件约束。
只需一个按钮就能很好地工作,但是我在弄清楚如何添加第二个按钮时遇到了问题,同时保持两个按钮同时位于同一行的中心。如果我在第二个按钮上添加相同的约束,它会在下一行的第一个按钮下方完美居中。
答案 0 :(得分:4)
解决方案是同时跨越和拆分:拆分定义应该在生成的单元格中存在的组件数量:
panel.add(firstButton, "span, split 2, center");
panel.add(secondButton);
除此之外:没有计数的跨度默认为高数字,它实际上意味着“全部”
答案 1 :(得分:2)
这不太理想,但您可以将两个按钮添加到新的JPanel,然后将JPanel嵌套在现有布局中,并使用“span 3,center”
我正在努力想到另一种方式。
答案 2 :(得分:0)
你可以尝试在左右两侧放置两个盒子,这样就会增长或按下中间的按钮:
pane.setLayout(new MigLayout("fill"));
pane.add(Box.createHorizontalBox(), "push");
pane.add(new JButton("asdf"));
pane.add(new JButton("zxcv"));
pane.add(Box.createHorizontalBox(), "push,wrap");