Maison > Java > javaDidacticiel > le corps du texte

Comment utiliser CardLayout pour changer de JPanels dans un JFrame ?

Susan Sarandon
Libérer: 2024-10-28 05:46:02
original
356 Les gens l'ont consulté

How to Use CardLayout to Switch JPanels Inside a JFrame?

Comment changer de JPanels dans un JFrame à l'aide de CardLayout

Changer de JPanels dans un JFrame peut être une tâche simple. Explorons comment y parvenir efficacement à l'aide d'une technique appelée CardLayout.

L'extrait de code suivant fournit un exemple d'utilisation de 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>
Copier après la connexion

Ici, nous créons une instance de CardLayout appelée cardLayout. et un panneau principal, mainPanel, qui utilise ce gestionnaire de mise en page. On ajoute ensuite deux panneaux, menu et game, au mainPanel avec leurs noms respectifs, "menu" et "game".

Lorsque vous appelez la méthode gameOn(), cela change la visibilité des panneaux à l'aide de cardLayout .montrer(). Par exemple, le code suivant :

<code class="java">public void gameOn() {
    cardLayout.show(mainPanel, "game");
}</code>
Copier après la connexion

masquera le panneau de menu et affichera le panneau de jeu à l'avant. Cette méthode évite d'avoir à ajouter et supprimer constamment des composants, ce qui peut s'avérer inefficace.

Voici un exemple que vous pouvez exécuter :

<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>
Copier après la connexion

Cet exemple démontre l'utilisation de CardLayout pour basculer de manière transparente entre le menu et les panneaux de jeu dans un JFrame.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!