Heim >Java >javaLernprogramm >Wie verwende ich CardLayout, um JPanels innerhalb eines JFrames zu wechseln?

Wie verwende ich CardLayout, um JPanels innerhalb eines JFrames zu wechseln?

Susan Sarandon
Susan SarandonOriginal
2024-10-28 05:46:02427Durchsuche

How to Use CardLayout to Switch JPanels Inside a JFrame?

So wechseln Sie JPanels innerhalb eines JFrames mit CardLayout

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn