2012-01-16 29 views
1

私はサブクラスがJPanelです。親フレームがpack()になるとすぐに、その最小サイズを新しい優先サイズに設定します。私はComponentAdapterを使用しようとしましたが、JPanelはデフォルトで表示されています。コンストラクタの先頭にあるsetVisible(false)の場合、JFrameは再び表示されません。 SwingUtilitiesのメソッドを使ってウィンドウのルートを取得すると、コンストラクタ内にあるので、nullを返します。JPanelの最小サイズを自動的に設定

これを行う方法はありますか?

+1

*「あなたの目標はナンセンスのように聞こえます。それがそうでないところまで精巧になるように注意してください。 –

+0

@AndrewThompson:なぜナンセンスなのか分かりません。あなたはこれが良い練習ではない、あるいはそれが信じられないほど簡単で、私はそれを見ていないと言っていますか? – wchargin

+0

あなたの2つの質問に対する「回答」では、私は単に助言します。もっと早く助けを求めるために、[SSCCE](http://sscce.org/)を投稿してください。多分私はあなたが話していることを理解することができます。 –

答えて

5

私はJPanelのサブクラスを持っています。親フレームがpack()されるとすぐに、最小サイズを新しい優先サイズに設定します。

パックの前に優先/最小サイズがわかっている場合は、それを設定します。

+0

いいえ、私はそうではありません。 2行の 'JLabel'を持つ' GridBagLayout'を使い、次に動的サイズのペインを使います。レイアウトマネージャで間隔やすべてを計算することは可能ですか? – wchargin

+1

あなたは(一般的に)必要はありません。 'pack()'は各コンポーネントの優先サイズを考慮します。 – trashgod

+0

@trashgod:ありがとう! – wchargin

1

確かに可能性が、それが有用であるかどうか、新しい推奨サイズ

にその最小サイズを設定するには...。 getMininumSize()メソッドをオーバーライドして返すことができますsuper.getPreferredSize();

関連する問題