【问题标题】:How to middle align through MigLayout如何通过 MigLayout 进行中间对齐
【发布时间】:2014-12-11 20:59:30
【问题描述】:

我正在使用 swing 和 miglayout 创建桌面应用程序。我将如何获得以下 gui? C1 是组件 1。

+-----+ +-----+
| C1  | | C2  |
+-----+ +-----+ +----+
+-----+ +-----+ | C4 | 
| C3  | | C4  | +----+
+-----+ +-----+

谢谢。

关于以下答案的更新。

代码是:

面板 = 新的 JPanel();

    MigLayout layout = new MigLayout("debug", "[][][]");
    panel.setLayout(layout);

    JCheckBox reptJCheckBox = new JCheckBox("REPT");
    JCheckBox tstcJCheckBox = new JCheckBox("TSTC");
    JCheckBox devJCheckBox = new JCheckBox("DEV");
    JCheckBox tstyCheckBox = new JCheckBox("TSTY");


    JButton openButton = new JButton("Open");

    panel.add(reptJCheckBox);
    panel.add(tstcJCheckBox, "wrap");
    panel.add(tstyCheckBox);
    panel.add(devJCheckBox);
    panel.add(openButton, "spany 2, wrap");

【问题讨论】:

  • @Norman Arain 你也可以接受问候的回答
  • 我显示提供的代码 sn-p 不起作用。我需要更多帮助。
  • 它不起作用,因为您没有正确遵循sn-p:1)添加tstcJCheckBox组件时,您有一个额外的wrap。 2) openButton 应该添加到第三位(而不是进一步),因为它必须位于第三列才能正确跨越该列中的行。

标签: java swing jpanel layout-manager miglayout


【解决方案1】:

请注意,您不能在容器中两次添加相同的组件,因此将 C1 和 C2 放在一起是错误的。

关于组件布局,我认为问题是如何垂直居中 C3 组件。好吧,这是使用spany 约束跨越行时的默认行为:组件垂直居中。试试这个 sn-p:

    MigLayout layout = new MigLayout("debug, fill", "[][][]");

    JPanel panel = new JPanel(layout);
    panel.add(new JButton("Button"));
    panel.add(new JButton("Button"));
    panel.add(new JButton("Button"), "spany 2, wrap");
    panel.add(new JButton("Button"));
    panel.add(new JButton("Button"));

截图

资源

有关约束的更多详细信息,请参阅MigLayout Quick Start Guide

【讨论】:

    猜你喜欢
    • 2013-12-26
    • 2014-02-19
    • 2012-11-20
    • 2013-12-11
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2016-04-26
    相关资源
    最近更新 更多