2010-02-12 80 views
0

我有一個JPanel,我想用含有3個垂直分量:擺動:適合簡單情況的佈局管理器?

  1. 一個JLabel
  2. 一個JTextField
  3. 一個JScrollPane

我希望所有的3個組成部分,填補了JPanel寬度。我想JLabelJTextField使用其正常高度和JScrollPane使用其餘的。

BoxLayout差不多的作品,但它似乎像JTextFieldJScrollPane份額的「額外」的空間,當JPanel變大。

我該怎麼辦?

回答

2

創建一個BorderLayout。將JScrollPane放在其中心。

用BoxLayout創建一個JPanel。垂直放置JLabel和JTextField。將該JPanel放入BorderLayout的北側。

+0

萬歲爲了簡單!謝謝! – 2010-02-12 17:17:49

1

GridBagLayout非常方便。你可以控制任何你需要的東西,而且你只能控制你需要的東西。您可能只會對垂直參數感興趣。

1

你也可以使用DesignGridLayout如下:

DesignGridLayout layout = new DesignGridLayout(thePanel); 
layout.row().center().fill().add(theLabel); 
layout.row().center().fill().add(theTextField); 
layout.row().center().fill().add(theScrollPane); 

這應該正是表現爲你描述。

每次調用row()都會在面板中創建一個新行。

調用fill()確保每個組件使用整個可用寬度。

使用DesignGridLayout這裏的一些優點是:

  • 只有一個佈局管理整個 面板
  • 自動邊界和跨行間距
+0

謝謝......當我願意拉圖書館時,我使用javabuilders + MiGlayout,這個問題實際上是關於內置佈局管理器的,雖然我承認我沒有說明。 – 2010-02-18 14:27:10