有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java MigLayout表单类型结构问题

我试图为结构创建一个整洁的中心,但是标签和字段之间没有相等的空间,我想我可能必须使用两列,而不是合并它们

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

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

这是问题在视觉上的表现,这是标签和文本字段之间的间距

out of line

如何使用MigLayout实现此布局


共 (1) 个答案

  1. # 1 楼答案

    问题出在“split 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");