2012-08-17 83 views
9

我應該如何在JFrame中獲得真正的JPanel大小?如何獲得真正的JPanel大小?

+6

「通過調用['getSize()'](http://docs.oracle.com/javase/7/docs/api/java/awt/Component.html#getSize%28%29)」。該方法可能在被實現之前被調用。有關更具體的建議,請發佈[SSCCE](http://sscce.org/)。 – 2012-08-17 17:57:04

+1

正如@安德魯所說。但是你不能這樣做,直到它被渲染。 – km1 2012-08-17 18:00:10

回答

16

大小將0,0直到它顯示,因爲組件和佈局不事先計算。

+0

jPanel的子組件在獲得其真實的寬度和高度後是否有任何回調來初始化子組件? – 2018-01-02 06:45:02

8

thePanel.getSize();

這將返回維度。

我有時會添加一個ComponentListener以在面板調整大小時顯示尺寸。

編輯:如果您想JFrame的內容窗格的大小,然後

theFrame.getContentPane().getSize(); 
+1

它沒有給出真正的大小java.awt.Dimension [width = 0,height = 0]我之前用 – Yoda 2012-08-17 17:59:34

+0

@RobertKilar km半回答了你的問題,在你感興趣的面板中添加一個ComponentLsterner並監控componentResized事件 – MadProgrammer 2012-08-17 21:09:10

+1

@RobertKilar你可能在渲染前獲得了大小。嘗試組件偵聽器的resize事件處理程序。 – km1 2012-08-18 01:36:33