Rumah > Java > javaTutorial > teks badan

Bagaimana Menggunakan CardLayout untuk Menukar JPanels Di Dalam JFrame?

Susan Sarandon
Lepaskan: 2024-10-28 05:46:02
asal
420 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan