2012-01-01 28 views
2

我在我的JFrame上有3個JPanel。無論如何,當JFrame正在被重新調整大小時,JPanel會垂直和水平地展開它們綁定到JFrame。Java - JPanel及其內容如何設置邊界

我想知道如何設置JpanelPane內部JPanel之一綁定到該JPanel,所以如果該JPanel正在重新調整大小,以便它內部的JScrollPane。

回答

3

如果只包含一個JComponent應與面板縮放JPanel ,最簡單的佈局管理器選項之一是BorderLayout和添加內容在中心

JPanel panel = new JPanel(new BorderLayout()); 
JComponent componentToAdd = ...; 
panel.add(componentToAdd, BorderLayout.CENTER); 

上有不同的佈局管理器,其描述了其中情況是differentmanagers米的整個Swing tutorial最適合的

+0

如果JPanel包含一個JComboBox並將它包含在下面,那麼JScrollPane – 2012-01-01 20:31:30

+0

「BorderLayout」只能在每個位置包含一個組件,並且只有「CENTER」位置水平和垂直地延伸它的內容(請參閱BorderLayout javadoc)。所以它取決於你的要求,你是否可以使用它(例如,通過將'JComboBox'添加到'NORTH'並將滾動窗格添加到'CENTER') – Robin 2012-01-01 20:38:01

+0

感謝像魅力一樣工作 – 2012-01-01 20:41:46

2

這需要您根據需要爲JPanel提供正確的佈局,例如BorderLayout,GridLayout,BoxLayout或其他佈局(但不是JPanel的默認佈局 - FlowLayout - 它不會更改組件的首選大小舉行)..如果一個BorderLayout,然後添加JPanel BorderLayout.CENTER(或根據需要再次在另一個位置)。如果你不熟悉基本的佈局,你將要通讀和研究,可以在這裏找到的教程:

Lesson: Laying Out Components Within a Container