2

我试图使结构整齐居中,但标签和字段之间没有相等的空间,我想我可能不得不使用两列而不是合并它们。

这就是我想要实现的目标:

+-----------------------------------------------+
|                                               |
|            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 实现此布局?

4

1 回答 1

3

问题在于“拆分 2”属性。通过传递该属性,您将拆分 JLabels 所在的单元格。所以一个 JLabel 和一个 JTextField 适合一个单元格。由于 JLabels 具有不同的大小(在不同的文本长度期间),因此您具有不等空间的效果。

这应该解决问题:

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");
于 2013-04-29T23:43:16.200 回答