我正在使用swing和miglayout创建桌面应用程序。我怎么能得到下面的gui? C1是组件1.
+-----+ +-----+
| C1 | | C2 |
+-----+ +-----+ +----+
+-----+ +-----+ | C4 |
| C3 | | C4 | +----+
+-----+ +-----+
谢谢。
关于以下答案的更新。
代码是:
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");
答案 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"));
有关约束的更多详细信息,请参阅MigLayout Quick Start Guide。