2013-04-29 42 views
2

我試圖做一個整潔的中心結構,但標籤和字段o之間沒有相等的空間,我想我可能不得不使用兩列而不是合併它們。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此佈局?

回答

3

問題出現在「split 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"); 
+0

利用所提供的例子,我設法將其調整到我喜歡的,主要的重要組成部分,是'ALIGNX trailing'謝客。 – Ciphor 2013-04-30 00:19:41