私はJavaでプログラムを作成していますが、レイアウトが異なるJPanelがあります。これらのJPanelでは、JButtonやJLabelsのような他のコンポーネントを持つ別のJPanelがあり、JFrameのサイズに応じてサイズを変更したいと考えています(JPanelのJPanelの高さはJFrameのコンテンツペインの半分に等しい)。Java - 独自のJPanelでJPanelを切り替え、内部のJPanelとコンポーネントをJFrameのサイズに応じてサイズ変更します。
私はこれらのJPanelsを直接作成してJFrameに直接追加または追加しようとしましたが、JFrameをパックし、再検証して再ペイントしませんでした。
また、CardLayoutを使用して試しました。私はJPanelsを作ってJFrameに追加されたコンテナに追加しました。切り替えはうまくいきましたが、JFrameのコンテンツペインのサイズを取得しようとしたときや、JPanelsでCardLayoutコンテナのサイズを取得しようとしたときに、幅と高さが0になったため、JPanelsと他のコンポーネントをCardLayoutコンテナのJPanelでサイズ変更できません。
これを達成する方法はありますか?
わかりやすく書いていただければ幸いです。実際には様々なシーンでゲームを作りたいと思っています。ボタンをクリックすると、別のコンポーネント(JPanels、JButtons、画像など)を持つ別のシーンに切り替わります。たぶん私はJFrameで1つのメインJPanelを使用し、そのレイアウトを変更し、シーンに応じて背景画像、JPanels、JButtonsなどを追加して追加することができますが、可能かどうか、別の問題が発生しないかどうかはわかりません。
ありがとうございました。
私は絶対配置を使用しませんが、内部コンポーネントのサイズを指定したいだけです。 JFrameのコンテンツペインのサイズの半分の高さを持つJPanelのJPanelですが、CardLayoutコンテナの内側にあるJPanelクラスのコンストラクタでフレームまたはそのコンテンツペインの実際のサイズを取得できません。 – Spook
(1+) - '高さがJFrameのコンテンツペインの半分の高さを持つJPanel上のJPanel ' - CardLayoutに追加するパネルは、GridLayoutを持つパネルになる可能性があります。あなたは私たちのSSCCEを投稿していませんので、私たちはさらに助けません。 – camickr