0

我正在尝试使用 MigLayout 将标签居中,但我遇到了困难。这是我希望标签的样子:

  • | [标签1] [标签2] [标签3] [标签4] [标签5] |
  • | ...... [标签6] [标签7] [标签8] .... | |

我想:

  1. 将标签数量限制为每行五个,我想我可以使用wrap 5
  2. 将 JPanel 内的标签居中

我在主 JPanel 上用子面板标记了部分,如下所示:

  • 第 1 节
  • [带有标签的子面板]
  • 第 2 节
  • [带有标签的子面板]

如果只有一个标签,则居中没有问题,因为我这样做:

myPanel.add(label, "align center, wrap");

不幸的是,如果我添加多个,它们就不会居中。我已经浏览了 MigLayout 备忘单,但这就像浏览一个 API 却没有完全理解它是如何工作的,而且我还没有找到任何好的教程。我想精通 MigLayout,所以一个好的教程可能会成功。

我会很感激你的帮助。

4

2 回答 2

1

我不确定你想要什么,但这是我的猜测:

panel.add(label1);
panel.add(label2);
panel.add(label3);
panel.add(label4);
panel.add(label5, "wrap");
panel.add(label6, "al 100%");
panel.add(label7, "align center");
panel.add(label8);

frame.pack();
于 2013-07-25T02:47:14.343 回答
1

您可以使用中心列约束进行 miglayout,您可以通过单元格编号添加它。

JPanel panel = new JPanel(new MigLayout("","[center][center][center][center][center]","[]"));

JLabel label1 = new JLabel("label1");
JLabel label2 = new JLabel("label2");
JLabel label3 = new JLabel("label3");
JLabel label4 = new JLabel("label4");
JLabel label5 = new JLabel("label5");

panel.add(label1, "cell 0 0");
panel.add(label2, "cell 1 0");
panel.add(label3, "cell 2 0");
panel.add(label4, "cell 3 0");
panel.add(label5, "cell 4 0");
f.getContentPane().add(panel);
于 2015-07-28T07:59:57.027 回答