0

GroupLayoutをレイアウトマネージャーとして使用する別のJPanelに配置した後、JPanelの正しいサイズを取得できるかどうかを確認したいと思いました。私はすでに使用しようとしました:

.getPreferredSize():これにより、フレーム内のJPanelに描画される実際のサイズではなく、私が設定した優先サイズになります(フレームのサイズが変更されると、要素は水平方向に拡張されます。これは値には表示されません。 )。

.getSize():0を返します。

.getHeight():0を返します。

.getWidth():0を返します。

コードの配置は関係があるかもしれませんが、画面に表示された後に実行されるため、問題にはなりません。

画面に表示された後で強制的に実行するには、EventQueueを使用できるかもしれませんが、方法がわかりません。

ご回答ありがとうございます!

4

1 に答える 1

2

トップレベルコンテナでpackまたはsetVisible(true)を呼び出すことにより、コンポーネントがレンダリングされた後でのみ、コンポーネントの「正しい」サイズを取得できます。

コードの配置は関係があるかもしれませんが、画面に表示された後に実行されるため、問題にはなりません。

次に、何かが正しくありません。これらのメソッドを、それらをシャドウするいくつかの変数ではなく、表示されているコンポーネントで呼び出していることを確認しますか?コードがないと、エラーがどこにあるのかを判断するのは困難です。

于 2011-05-24T21:31:30.650 に答える