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!