我想要在面板上垂直對齊文本字段和標籤的列表,每個標籤對應於相應的文本字段並出現在UI旁邊。文本字段中的值將在稍後調用另一個函數。如何在面板上顯示2個組件列表
問題是,我似乎無法得到正確的佈局。我嘗試過使用Spring佈局,但我無法繞過它......基本上,我可以用其他方式來做到這一點嗎?我目前正在使用面板的方塊佈局,但它只顯示一個文本字段列表,下方有一個標籤列表。我仍然是一個小菜鳥,我真的需要一些新鮮的投入。任何幫助將非常感謝,謝謝。
我想要在面板上垂直對齊文本字段和標籤的列表,每個標籤對應於相應的文本字段並出現在UI旁邊。文本字段中的值將在稍後調用另一個函數。如何在面板上顯示2個組件列表
問題是,我似乎無法得到正確的佈局。我嘗試過使用Spring佈局,但我無法繞過它......基本上,我可以用其他方式來做到這一點嗎?我目前正在使用面板的方塊佈局,但它只顯示一個文本字段列表,下方有一個標籤列表。我仍然是一個小菜鳥,我真的需要一些新鮮的投入。任何幫助將非常感謝,謝謝。
你可以簡單地使用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
+1,我從來不明白爲什麼這個共同的要求是相對複雜的。 – camickr
@camickr我認爲,因爲每個人對於需要什麼都有不同的意見(左/右對齊,填充,重量...) – MadProgrammer
我建議看看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);
'我已經使用Spring的佈局嘗試,但我不能讓我的頭周圍......' - 你看了搖擺教程[如何使用SpringLayout中( http://docs.oracle.com/javase/tutorial/uiswing/layout/spring.html)?它包含一個工作示例。從工作示例開始,並進行更改。話雖如此,佈局經理們可以使用起來更簡單,但是要開始的地方是基礎教程。那麼如果有什麼你不明白的,你可以發佈一個具體的問題,而不是僅僅說「它不工作」。 – camickr