Java Swing アプリケーションでは、JFrame に異なる JPanel インスタンスを含めることが一般的です。要件。あるパネルを別のパネルにシームレスに置き換える方法を理解することは、応答性が高く使いやすいインターフェイスを構築するために非常に重要です。
指定したコード スニペットは、新しい CustomJPanelWithComponentsOnIt を作成し、既存のパネルを置き換えようとします。 JFrame を使用できますが、このアプローチは JFrame のレイアウトを正しく更新しないため機能しません。
解決策は、複数のパネルを表示できるパネル マネージャーである CardLayout を使用することです。コンテナに追加されますが、一度に表示されるパネルは 1 つだけです。 CardLayout を使用してこれを実装する方法は次のとおりです。
<code class="java">import java.awt.CardLayout; import java.awt.JPanel; // Create a JFrame with a CardLayout JFrame frame = new JFrame(); frame.setLayout(new CardLayout()); // Create a few panels to be added to the JFrame JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(); // Add the panels to the CardLayout frame.add(panel1, "Panel 1"); frame.add(panel2, "Panel 2"); // Show the first panel CardLayout layout = (CardLayout) frame.getLayout(); layout.show(frame.getContentPane(), "Panel 1"); // Dynamically switch the panel on user action // ... (user action code) layout.show(frame.getContentPane(), "Panel 2");</code>
このアプローチにより、新しいパネルが JFrame に正しく表示され、レイアウトが動的に更新され、パネルを切り替えるときにスムーズなユーザー エクスペリエンスが提供されます。
以上がJFrame の JPanel インスタンスを CardLayout に動的に置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。