2013-01-05 65 views
1

我有一個帶有邊框佈局的JTabbedPane。設置JScrollPane的常量大小

enter image description here

下面是我用添加組件的代碼:

add(columnNames, BorderLayout.NORTH); 
add(scroll, BorderLayout.CENTER); 
add(useCtrl, BorderLayout.SOUTH); 
setVisible(true); 

問題: 通知多餘的空格到JScrollPane的內部的權利。我不想那樣。我希望JScrollPane在更改JFrame的大小時不要改變大小。我試過setSize()和setPreferredSize(),但JScrollPane的大小總是變化的。我試過使用GridLayout,但我得到了相同的結果。

+0

爲了更快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –

+0

看看[佈局經理的視覺指南](http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html)。如前所述,'BorderLayout'默認會將所有可用空間放到中心組件...... – MadProgrammer

回答

4

JScrollPane放置在JPanel的另一佈局中。 (例如BoxLayoutGridBagLayout)。並將中心添加JPanel

3

圖形對象的大小由佈局管理器控制。 BorderLayout將始終擴大CENTER對象以佔用所有可用空間。 GridLayout按比例擴展它的所有孩子。如果您嘗試使用GridBagLayout並將weightx設置爲0,則會阻止水平擴展。

有很多可用的佈局管理器,瀏覽API以獲得更多選擇並進行實驗,直到找到所需的調整大小行爲。每個人對javadoc中的工作方式都有相當好的解釋。