Swing GUI を使用する場合、複数のパネル間を移動することが一般的な要件となることがあります。戻るボタンと進むボタンを実装することは、ユーザーに直感的なナビゲーション エクスペリエンスを提供する 1 つの方法です。スタックベースのアプローチの使用は直感的に見えるかもしれませんが、CardLayout を使用した代替ソリューションはシンプルさと効率の両方を提供します。
この記事では、CardLayout を利用して戻るボタンと進むボタンを実装する方法を検討します。コード スニペットの例とその利点について説明します。
CardLayout は、次のレイアウト マネージャーです。複数のコンポーネントを単一のエンティティとして管理できるようにする Swing。これは、コンポーネントを互いの上に積み重ねることによって機能し、常に最上位のコンポーネントのみが表示されるようにします。
CardLayout を使用して戻るボタンと進むボタンを実装するには、パネルの配列またはリストを作成し、各パネルを作成できます。 CardLayout マネージャーに追加できます。 CardLayout の次のメソッドと前のメソッドを使用して異なるパネル間を切り替えることにより、ユーザーは順番に前後に移動できます。
戻るの実装方法を示す例は次のとおりです。 CardLayout を使用した「進む」ボタン:
import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.EventQueue; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; // ... // Create a CardLayout manager CardLayout cards = new CardLayout(); // Create an array of panels to be managed by the CardLayout JPanel[] panels = new JPanel[] { new JPanel(), new JPanel(), new JPanel() }; // Add the panels to the CardLayout manager for (int i = 0; i < panels.length; i++) { cards.add(panels[i], "panel" + i); } // Create a JPanel to hold the back and forward buttons JPanel controlPanel = new JPanel(); // Add the back and forward buttons to the control panel controlPanel.add(new JButton(new AbstractAction("\u22b2Prev") { @Override public void actionPerformed(ActionEvent e) { cards.previous(panels); } })); controlPanel.add(new JButton(new AbstractAction("Next\u22b3") { @Override public void actionPerformed(ActionEvent e) { cards.next(panels); } })); // Add the CardLayout and control panel to the frame frame.add(cards, BorderLayout.CENTER); frame.add(controlPanel, BorderLayout.SOUTH);
この例では、「戻る」ボタンと「進む」ボタンは、次の前のメソッドと次のメソッドをトリガーします。
CardLayout をナビゲーションに使用すると、次のような利点があります。
CardLayout は、Swing GUI に戻るボタンと進むボタンを実装するための効率的かつ直感的な方法を提供します。複数のコンポーネントを単一のエンティティとして管理する機能を利用することで、開発者はユーザー エクスペリエンスを向上させるダイナミック ナビゲーション システムを迅速かつ簡単に作成できます。
以上がCardLayout を使用すると、Swing での「戻る/進む」ボタンの実装をどのように簡素化できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。