Heim >Java >javaLernprogramm >Wie verwende ich CardLayout, um JPanels innerhalb eines JFrames zu wechseln?
Das Wechseln von JPanels innerhalb eines JFrames kann eine unkomplizierte Aufgabe sein. Lassen Sie uns untersuchen, wie Sie dies mithilfe einer Technik namens CardLayout effektiv erreichen können.
Der folgende Codeausschnitt bietet ein Beispiel für die Verwendung von 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>
Hier erstellen wir eine CardLayout-Instanz namens cardLayout und ein Hauptpanel, mainPanel, das diesen Layout-Manager verwendet. Anschließend fügen wir dem mainPanel zwei Panels hinzu, „menu“ und „game“, mit ihren jeweiligen Namen, „menu“ und „game“.
Wenn Sie die gameOn()-Methode aufrufen, ändert sich die Sichtbarkeit der Panels mithilfe von cardLayout .zeigen(). Beispielsweise blendet der folgende Code:
<code class="java">public void gameOn() { cardLayout.show(mainPanel, "game"); }</code>
das Menüfeld aus und zeigt das Spielfeld vorne an. Diese Methode vermeidet das ständige Hinzufügen und Entfernen von Komponenten, was ineffizient sein kann.
Hier ist ein Beispiel, das Sie ausführen können:
<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>
Dieses Beispiel zeigt die Verwendung von CardLayout für den nahtlosen Wechsel zwischen die Menü- und Spielfelder innerhalb eines JFrame.
Das obige ist der detaillierte Inhalt vonWie verwende ich CardLayout, um JPanels innerhalb eines JFrames zu wechseln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!