【问题标题】:Centering labels with MigLayout使用 MigLayout 使标签居中
【发布时间】:2013-07-15 07:00:01
【问题描述】:

我正在尝试使用 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,所以一个好的教程可能会成功。

感谢您的帮助。

【问题讨论】:

  • 有点困惑:如果您不想填充它们,为什么还要有列?无论如何,显示您正在尝试的 SSCCE

标签: java swing miglayout


【解决方案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();

【讨论】:

    【解决方案2】:

    您可以使用中心列约束进行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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 2011-01-04
      • 2020-07-26
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多