5

我正在使用 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"按钮上的组件约束跨越成一列。

这仅适用于一个按钮,但我在弄清楚如何添加第二个按钮时遇到问题,同时将两个按钮同时保持在同一行的中心。如果我在第二个按钮上添加相同的约束,它会在下一行的第一个按钮下方完美居中。

4

3 回答 3

5

解决方案是同时跨越拆分:拆分定义了应该存在于跨越单元中的组件的数量:

panel.add(firstButton, "span, split 2, center");
panel.add(secondButton);

另外:没有计数的跨度默认为一个很大的数字,它实际上意味着“全部”

于 2012-11-23T11:36:09.387 回答
2

这并不理想,但您可以将这两个按钮添加到新的 JPanel,然后将该 JPanel 嵌套在现有布局中,并使用“span 3, center”

我正在努力想另一种方式。

于 2010-04-09T16:33:56.480 回答
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");
于 2012-11-23T10:42:17.287 回答