使用MigLayout对标签进行居中

时间:2013-07-16 21:53:19

标签: java swing miglayout

我正在尝试使用MigLayout来标记标签,而且我遇到了困难。这就是我想要的标签:

  • | [label1] [label2] [label3] [label4] [label5] |
  • | ............ [label6] [label7] [label8] ............ | |

我想:

  1. 每行限制标签数量为5,我想我可以使用 wrap 5
  2. 将标签置于JPanels
  3. 我在主JPanel上标记了子面板的部分,如下所示:

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

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

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

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

    我很感激你的帮助。

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分: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);