JFrame 内で JPanel を切り替えるのは簡単な作業です。 CardLayout と呼ばれる手法を使用して、これを効果的に実現する方法を見てみましょう。
次のコード スニペットは、CardLayout の使用方法の例を示しています。
<code class="java">CardLayout cardLayout = new CardLayout(); JPanel mainPanel = new JPanel(cardLayout); MenuPanel menu = new MenuPanel(); GamePanel game = new GamePanel(); mainPanel.add(menu, "menu"); mainPanel.add(game, "game");</code>
ここでは、cardLayout という CardLayout インスタンスを作成します。そして、このレイアウト マネージャーを使用するメイン パネル mainPanel です。次に、menu と game という 2 つのパネルを、それぞれ「menu」と「game」という名前で mainPanel に追加します。
gameOn() メソッドを呼び出すと、cardLayout を使用してパネルの表示/非表示が変更されます。 。見せる()。たとえば、次のコード:
<code class="java">public void gameOn() { cardLayout.show(mainPanel, "game"); }</code>
はメニュー パネルを非表示にし、ゲーム パネルを前面に表示します。この方法では、非効率となる可能性があるコンポーネントの追加と削除を頻繁に行う必要がなくなります。
実行できる例は次のとおりです:
<code class="java">import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingUtilities; public class GameFrame extends JFrame implements ActionListener{ CardLayout cardLayout; JPanel mainPanel; MenuPanel menu; GamePanel game; public GameFrame() { // ... (similar to previous example) } // ... public void actionPerformed(ActionEvent e) { gameOn(); } public void gameOn() { // ... (similar to previous example) } public static void main(String[] args) { // ... (similar to previous example) } }</code>
この例では、CardLayout を使用してシームレスに切り替える方法を示します。 JFrame 内のメニューとゲーム パネル。
以上がCardLayout を使用して JFrame 内で JPanel を切り替える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。