この Java Swing アプリケーションでは、JFrame 内の JPanel をユーザーのアクションに基づいて別の JPanel と交換する必要があります。これを実現するための適切なアプローチを検討し、以下のコードをテストしました:
panel = new CustomJPanelWithComponentsOnIt(); parentFrameJPanelBelongsTo.pack();
ただし、このアプローチではパネルを切り替えることができません。
解決策: CardLayout を活用する
このシナリオの理想的な解決策は、一度に 1 つのパネルのみを選択的に表示しながら、複数のパネルの表示を可能にするレイアウト マネージャーである CardLayout を利用することです。
CardLayout を実装するには、次の手順を実行します。取得できます:
CardLayout オブジェクトを作成します:
CardLayout cardLayout = new CardLayout();
パネルを保持するコンテナのレイアウトを設定します (例: JFrame):
parentFrameJPanelBelongsTo.setLayout(cardLayout);
CardLayout の制約を使用してパネルをコンテナに追加します:
parentFrameJPanelBelongsTo.add(new CustomJPanelWithComponentsOnIt(), "panel1"); parentFrameJPanelBelongsTo.add(new AnotherJPanel(), "panel2");
最初のパネルを次のように設定します表示されます:
cardLayout.show(parentFrameJPanelBelongsTo, "panel1");
ユーザー操作に基づいてアクティブなパネルを動的に変更します:
cardLayout.show(parentFrameJPanelBelongsTo, "panel2");
以上がJFrame 内でパネルを動的に交換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。