如何通过MigLayout进行中间对齐

时间:2014-10-16 13:10:06

标签: java swing jpanel layout-manager miglayout

我正在使用swing和miglayout创建桌面应用程序。我怎么能得到下面的gui? C1是组件1.

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

谢谢。

关于以下答案的更新。

enter image description here

代码是:

panel = new 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");

1 个答案:

答案 0 :(得分:5)

请注意,您不能在容器中添加两次相同的组件,因此使用C1和C2时会出错。

关于组件布局,我认为问题是如何垂直居中C3组件。这是使用spany约束跨行的默认行为:组件垂直居中。试试这个片段:

    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"));

截图

enter image description here

资源

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