2015-04-06 67 views
0

我的問題是,儘管滾動條出現在特定的面板上,但我希望它不會隨着標籤的添加而擴展。我希望它在標籤開始離開它們添加到的面板時延長。JLabels添加到面板時JScrollPane沒有變大

我有一個主要的JPanel「面板」,它使用的GridBagLayout,內我有其他5個面板,需要一個滾動條的那些是boardPanel具有空值的setLayout()

panel = new JPanel(); 
panel.setLayout(new GridBagLayout()); 

... 


1Panel = new JPanel(); 
1Panel.setPreferredSize(new Dimension(480, 800)); 
1Panel.setLayout(null); 
scrollPanel = new JScrollPanel(1Panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 

... 

c.weighty = 1.0; 
c.weightx = 0.6; 
c.gridx = 0; 
c.gridy = 0; 
c.gridheight = 3; 
panel.add(scrollPanel, c); 

... 

希望這是足夠的信息,非常感謝你的幫助提前。

回答

3

不要使用null佈局!

請勿使用setPreferredSize()!!!

當組件的首選大小大於滾動窗格的大小時,將出現滾動條。通過對大小進行硬編碼可以打破此功能。

使用佈局管理器,在將組件添加到面板時首選大小會動態變化。

閱讀關於Layout Managers的Swing教程