我試圖與一個JFrame
(實際上,在Scala的Swing包裝,Frame
,但我不明白爲什麼這應該很重要),其中包含BoxLayout
其中有幾個項目,其中一個響應按鈕更改大小點擊(BoxLayout
中的另一項)。當孩子調整大小時調整JFrame的大小:如何跟上?
當調整大小,該按鈕事件處理程序執行以下操作:
- 呼叫上改變大小的項目(
JPanel
)的方法;這爲該組件調用setPreferredSize
。 - 呼叫
pack
在JFrame
- 呼叫
repaint
在JFrame
這適用於一個很奇怪的警告:JFrame中總是落後一步。因此,如果我將我的首選x尺寸設置爲100,200,300,200,100,則JFrame的寬度將爲100,100,200,300,200。
可能會出錯,以及如何獲取尺寸更改傳播到JFrame窗口大小,當他們應該?
(更多可能,但希望不是相關的細節:Ubuntu的10.10使用Sun Java 1.6.0_24)
這樣做 - 在'BoxLayout'_上重新驗證_,而不是'JFrame'上的validate/invalidate的任何組合。謝謝! – 2011-05-19 13:46:28