我有一個JPanel
,我想用含有3個垂直分量:擺動:適合簡單情況的佈局管理器?
- 一個
JLabel
- 一個
JTextField
- 一個
JScrollPane
我希望所有的3個組成部分,填補了JPanel
寬度。我想JLabel
和JTextField
使用其正常高度和JScrollPane
使用其餘的。
BoxLayout
差不多的作品,但它似乎像JTextField
和JScrollPane
份額的「額外」的空間,當JPanel
變大。
我該怎麼辦?
我有一個JPanel
,我想用含有3個垂直分量:擺動:適合簡單情況的佈局管理器?
JLabel
JTextField
JScrollPane
我希望所有的3個組成部分,填補了JPanel
寬度。我想JLabel
和JTextField
使用其正常高度和JScrollPane
使用其餘的。
BoxLayout
差不多的作品,但它似乎像JTextField
和JScrollPane
份額的「額外」的空間,當JPanel
變大。
我該怎麼辦?
創建一個BorderLayout。將JScrollPane放在其中心。
用BoxLayout創建一個JPanel。垂直放置JLabel和JTextField。將該JPanel放入BorderLayout的北側。
GridBagLayout非常方便。你可以控制任何你需要的東西,而且你只能控制你需要的東西。您可能只會對垂直參數感興趣。
你也可以使用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這裏的一些優點是:
謝謝......當我願意拉圖書館時,我使用javabuilders + MiGlayout,這個問題實際上是關於內置佈局管理器的,雖然我承認我沒有說明。 – 2010-02-18 14:27:10
萬歲爲了簡單!謝謝! – 2010-02-12 17:17:49