2010-04-14 67 views
0

好的,所以我整天都在拉我的頭髮。我無法調整面板的大小。我添加面板到任何東西..一個框架,一個內容窗格,它不會..「強制」setBounds出於某種奇怪的原因。Swing Panel問題

Container pane = window.getContentPane(); 
JPanel calendarPanel = new JPanel(); 
pane.add(calendarPanel); 
calendarPanel.setBounds(0,0, 320, 335); 

注意窗口是JFrame。任何建議大小的面板將不勝感激!

回答

2

如果你還沒有,這聽起來像你需要看看layout managers。一些佈局經理會遵守要求或首選的組件大小,有些則不然。

默認情況下,JFrame使用BorderLayout作爲佈局管理器。當您在未提供約束的情況下添加上面的日曆面板時,它假定您希望面板居中。任何以BorderLayout爲中心的內容都會佔用所有可用空間,無論您將組件邊界設置爲什麼。

對於一個立即解決此問題,設置佈局管理器null

Container pane = window.getContentPane(); 
pane.setLayout(null); 
1

你設置父組件的佈局?我認爲FlowLayout會將面板留在自然尺寸。

component.setLayout(new java.awt.FlowLayout()); 

編輯:見灰的帖子