如何通过MigLayout进行中间对齐

Nom*_*ain 2 java swing jpanel miglayout layout-manager

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

+-----+ +-----+
| C1  | | C2  |
+-----+ +-----+ +----+
+-----+ +-----+ | C4 | 
| C3  | | C4  | +----+
+-----+ +-----+
Run Code Online (Sandbox Code Playgroud)

谢谢.

关于以下答案的更新.

在此输入图像描述

代码是:

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");
Run Code Online (Sandbox Code Playgroud)

dic*_*c19 5

请注意,您不能在容器中两次添加相同的组件,因此具有C1和C2 tiwce是错误的.

关于组件布局,我认为问题是如何垂直居中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"));
Run Code Online (Sandbox Code Playgroud)

截图

在此输入图像描述

资源

有关约束的更多详细信息,请参阅MigLayout快速入门指南.