2012-08-17 23 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/)に投稿してください。 –

+1

@Andrewは言う通り。しかし、レンダリングされるまではそれを行うことはできません。 – km1

答えて

16

たJFrameのコンテンツ・ペインのサイズをしたい場合は部品やレイアウトが事前に計算されていないので、それが表示されるまでサイズは0,0になります。

+0

jPanelの子コンポーネントを実際の幅と高さに初期化するためのコールバックはありますか? –

8

thePanel.getSize();

これはディメンションを返します。

Panelがサイズ変更されたときにディメンションを表示するためにComponentListenerを追加することがあります。

EDIT:あなたは

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

実際のサイズはjava.awt.Dimension [width = 0、height = 0]ではありません。 – Yoda

+0

の前に@RobertKilar km半分の質問に答えました。興味のあるパネルにComponentLsternerを追加し、componentResizedイベントを監視して監視します – MadProgrammer

+1

@RobertKilarあなたはおそらくレンダリングされる前にサイズを取得しています。コンポーネントリスナーのresizeイベントハンドラを試してみてください。 – km1

関連する問題