ホームページ  >  記事  >  Java  >  JFrame 内の JPanel を動的に置き換える方法は?

JFrame 内の JPanel を動的に置き換える方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-24 17:20:03972ブラウズ

How to Dynamically Replace JPanels in a JFrame?

JFrame での動的 JPanel 置換

JFrame で JPanel を動的に置換するには、Swing のレイアウト管理システムを理解する必要があります。 Pack() を使用してレイアウトを調整しようとしましたが、コンポーネントの置換を処理するのではなく、主にウィンドウのサイズを制御します。

動的 JPanel 管理での CardLayout の使用

CardLayoutは、単一のコンテナ内で複数のパネルを切り替えるための洗練されたソリューションを提供します。実装方法は次のとおりです。

  1. CardLayout オブジェクトを作成します:

    <code class="java">CardLayout cardLayout = new CardLayout();</code>
  2. CardLayout を設定しますコンテナのレイアウトマネージャーとして:

    <code class="java">parentFrameJPanelBelongsTo.setLayout(cardLayout);</code>
  3. パネルをコンテナに追加します:

    <code class="java">parentFrameJPanelBelongsTo.add(panel, "CUSTOM_PANEL_ID");
    parentFrameJPanelBelongsTo.add(newOtherPanel, "NEW_PANEL_ID");</code>
  4. パネルを切り替える:

    <code class="java">cardLayout.show(parentFrameJPanelBelongsTo, "CUSTOM_PANEL_ID");</code>
  5. フレームをパックする:

    <code class="java">parentFrameJPanelBelongsTo.pack();</code>

使用例:

この例では、次のようにコードを変更できます:

<code class="java">CustomJPanelWithComponentsOnIt panel = new CustomJPanelWithComponentsOnIt();

// Create and set the CardLayout
CardLayout cardLayout = new CardLayout();
parentFrameJPanelBelongsTo.setLayout(cardLayout);

// Add the panels to the frame
parentFrameJPanelBelongsTo.add(panel, "CUSTOM_PANEL_ID");

// Switch to the desired panel
cardLayout.show(parentFrameJPanelBelongsTo, "CUSTOM_PANEL_ID");

// Pack the frame
parentFrameJPanelBelongsTo.pack();</code>

CardLayout を利用すると、JPanel をシームレスに置き換えることができます。動的でユーザー応答性の高いインターフェイスを保証する、オンザフライの JFrame。

以上がJFrame 内の JPanel を動的に置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。