2011-10-16 3 views
-1

私のNetbeansのコードでは、時々私を狂わせてしまうJPanelsとJDialogがあります。これらのコンテナのコントローラの中には、コード内でサイズと内容の両方を設定していてもIDEプロパティを使用していても、表示されないか、自動的にサイズが変更されるものがあります。たとえば、特定のJPanelのjButtonの中には、テキストラベルが表示されないものや、テキストフィールドのサイズが変更されるものがあります。JDialogとJPanelは、設定されたサイズまで開かず、ラベルも表示しません。

これに対する解決策は大変ありがたいです!

+1

[JDialogは設定サイズに開けませんか?](http://stackoverflow.com/questions/7783714/jdialog-does-not-open-to-its-set-size) –

答えて

0

残念ながら、あなたの問題を示すコードスニペットは提供していません。しかし、あなたがレイアウトの振る舞いと混同していると仮定しよう。通常は、レイアウトマネージャを使用し、グラフィック要素の配置とサイズ変更の責任を委任します。レイアウトマネージャは、親要素がペイントされているとき、すなわちメソッドpaint()の実行中に非同期的に発生し、様々なイベント(たとえば、フォーカスの変更、ウィンドウのサイズ変更など)によって引き起こされる場合に機能します。

この場合、setSize()を呼び出すことによって、特定の要素のサイズを変更しようとすると、同じ要素のサイズを別々に変更するレイアウトマネージャが上書きできます。

私の前提が正しいとすれば、レイアウトマネージャを使い、問題があれば具体的な質問をしてください。

+0

ありがとうございましたあなたの親切なコメント。私はNetbeansを使用しています。私の質問は、IDEがこれらのGUIコンパートメントを処理することができず、開発者が何よりも苦痛を感じるようになったときに、なぜそれを使うのがポイントなのかです。これをベースアップから実行する方が時間がかかります。私はJavaの初心者ですし、もちろん学ぶ必要があります。Netbeansを採用した理由は、時間を節約して徐々に知識を蓄積することでしたが、Netbeansは単なる余分なことです。 – Sam

+0

しかし、私はレイアウトマネージャーの背後にあるコンセプトを理解できるように、親切に助けてくれてありがとう! – Sam

1

NetBeans IDEウィザードを使用してGUIを作成すると、JPanelとJFrameに添付されたレイアウトマネージャはGroupLayoutであり、期待通りに動作します。指定したJPanelとJFrameのサイズを保持します。

ここで、JPanelまたはJFrameのLayoutManagerを変更すると、自分で設定します。 LayoutManagerを変更し、必要なコードを更新/追加した結果を知って、コードを期待どおりに実行させる必要があります。

NetBeansコンポーネントデザイナーに表示される内容を取得する場合は、デフォルトのLayoutManagerをGroupLayoutのままにしておくことをお勧めします。

関連する問題