我正在努力使结构整齐,但标签和字段之间没有相同的空间,我想我可能不得不使用两列而不是合并它们。
这就是我想要实现的目标:
+-----------------------------------------------+
| |
| lbl1 [ txt1 ] |
| lbl2 [ txt2 ] |
| lbl3 [ txt3 ] |
| lbl4 [ txt4 ] |
| [btn5][btn6] |
| |
| |
| |
| |
+-----------------------------------------------+
这是我目前的代码:
contentPane.setLayout(new MigLayout("fill","center"));
contentPane.add(lbl1, "split 2, span");
contentPane.add(txt1, "wrap");
contentPane.add(lbl2, "split 2, span");
contentPane.add(txt2, "wrap");
contentPane.add(lbl3, "split 2, span");
contentPane.add(txt3, "wrap");
contentPane.add(lbl4, "split 2, span");
contentPane.add(txt4, "wrap");
contentPane.add(btn5, "split 2, span");
contentPane.add(btn6);
这是问题在视觉上的外观,这是标签和文本字段之间的空格。
如何使用MigLayout实现此布局?
答案 0 :(得分:3)
问题在于“分裂2”属性。通过传递该属性,您将分割JLabel所在的单元格。因此,一个JLabel和一个JTextField适合一个单元格。由于JLabel具有不同的大小(在不同文本长度期间),因此具有不等空间的效果。
这应解决问题:
contentPane.setLayout(new MigLayout("center"));
contentPane.add(lbl1, "alignx trailing");
contentPane.add(txt1, " wrap");
contentPane.add(lbl2, "alignx trailing");
contentPane.add(txt2, "wrap");
contentPane.add(lbl3, "alignx trailing");
contentPane.add(txt3, " wrap");
contentPane.add(lbl4, "alignx trailing");
contentPane.add(txt4, " wrap");
contentPane.add(btn5, "skip, split2, growx");
contentPane.add(btn6,"growx");