Rumah >Java >javaTutorial >Bagaimana Menggunakan CardLayout untuk Menukar JPanels Di Dalam JFrame?

Bagaimana Menggunakan CardLayout untuk Menukar JPanels Di Dalam JFrame?

Susan Sarandon
Susan Sarandonasal
2024-10-28 05:46:02426semak imbas

How to Use CardLayout to Switch JPanels Inside a JFrame?

Cara Menukar JPanels dalam JFrame Menggunakan CardLayout

Menukar JPanels dalam JFrame boleh menjadi tugas yang mudah. Mari kita terokai cara untuk mencapai ini dengan berkesan menggunakan teknik yang dipanggil CardLayout.

Coretan kod berikut memberikan contoh cara menggunakan 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>

Di sini, kami mencipta contoh CardLayout yang dipanggil cardLayout dan panel utama, MainPanel, yang menggunakan pengurus susun atur ini. Kami kemudian menambah dua panel, menu dan permainan, pada panel utama dengan nama masing-masing, "menu" dan "permainan".

Apabila anda memanggil kaedah gameOn(), ia menukar keterlihatan panel menggunakan cardLayout .tunjukkan(). Sebagai contoh, kod berikut:

<code class="java">public void gameOn() {
    cardLayout.show(mainPanel, "game");
}</code>

akan menyembunyikan panel menu dan memaparkan panel permainan di hadapan. Kaedah ini mengelakkan keperluan untuk menambah dan mengalih keluar komponen secara berterusan, yang boleh menjadi tidak cekap.

Berikut ialah contoh yang boleh anda jalankan:

<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>

Contoh ini menunjukkan penggunaan CardLayout untuk bertukar antara dengan lancar menu dan panel permainan dalam JFrame.

Atas ialah kandungan terperinci Bagaimana Menggunakan CardLayout untuk Menukar JPanels Di Dalam JFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn