2014-06-29 18 views
0

我想要在面板上垂直對齊文本字段和標籤的列表,每個標籤對應於相應的文本字段並出現在UI旁邊。文本字段中的值將在稍後調用另一個函數。如何在面板上顯示2個組件列表

問題是,我似乎無法得到正確的佈局。我嘗試過使用Spring佈局,但我無法繞過它......基本上,我可以用其他方式來做到這一點嗎?我目前正在使用面板的方塊佈局,但它只顯示一個文本字段列表,下方有一個標籤列表。我仍然是一個小菜鳥,我真的需要一些新鮮的投入。任何幫助將非常感謝,謝謝。

+1

'我已經使用Spring的佈局嘗試,但我不能讓我的頭周圍......' - 你看了搖擺教程[如何使用SpringLayout中( http://docs.oracle.com/javase/tutorial/uiswing/layout/spring.html)?它包含一個工作示例。從工作示例開始,並進行更改。話雖如此,佈局經理們可以使用起來更簡單,但是要開始的地方是基礎教程。那麼如果有什麼你不明白的,你可以發佈一個具體的問題,而不是僅僅說「它不工作」。 – camickr

回答

3

你可以簡單地使用GridBagLayout(雖然MigLayout威力值得看看爲好)......

setLayout(new GridLayout()); 
GridBagConstraints gbc = new GridBagConstraints(); 
gbc.gridx = 0; 
gbc.gridy = 0; 
for (int index = 0; index < 10; index++) { 
    gbc.anchor = GridBagConstraints .EAST; 
    gbc.gridx = 0; 
    add(new JLabel("Label " + index), gbc); 
    gbc.anchor = GridBagConstraints .WEST; 
    gbc.gridx++; 
    add(new JTextField(10), gbc); 
    gbc.gridy++; 
} 

現在,很明顯,這只是用來演示概念的例子,你需要擴大的想法,並把它應用到你的特定問題......

看看How to use GridBagLayout更多detaols

+0

+1,我從來不明白爲什麼這個共同的要求是相對複雜的。 – camickr

+0

@camickr我認爲,因爲每個人對於需要什麼都有不同的意見(左/右對齊,填充,重量...) – MadProgrammer

1

我建議看看RiverLayout經理。它的使用非常簡單直接。

http://www.datadosen.se/riverlayout/

JFrame frame = new JFrame("Test RiverLayout"); 
Container container = frame.getContentPane(); 
container.setLayout(new RiverLayout()); 
container.add("left", new JLabel("Label 1")); 
container.add("tab", new JTextField("Text field 1")); 

container.add("br left", new JLabel("Label 2")); 
container.add("tab", new JTextField("Text field 2")); 

frame.pack(); 
frame.setVisible(true);