>  기사  >  Java  >  JFrame 내에서 JPanel을 전환하기 위해 CardLayout을 사용하는 방법은 무엇입니까?

JFrame 내에서 JPanel을 전환하기 위해 CardLayout을 사용하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-28 05:46:02346검색

How to Use CardLayout to Switch JPanels Inside a JFrame?

CardLayout을 사용하여 JFrame 내에서 JPanel을 전환하는 방법

JFrame 내에서 JPanel을 전환하는 것은 간단한 작업일 수 있습니다. CardLayout이라는 기술을 사용하여 이를 효과적으로 달성하는 방법을 살펴보겠습니다.

다음 코드 조각은 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>

여기서는 cardLayout이라는 CardLayout 인스턴스를 생성합니다. 이 레이아웃 관리자를 사용하는 메인 패널인 mainPanel이 있습니다. 그런 다음 두 개의 패널(메뉴 및 게임)을 각각의 이름인 "menu" 및 "game"과 함께 mainPanel에 추가합니다.

gameOn() 메서드를 호출하면 카드 레이아웃을 사용하여 패널의 가시성이 변경됩니다. .보여주다(). 예를 들어, 다음 코드는

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

메뉴 패널을 숨기고 게임 패널을 전면에 표시합니다. 이 방법을 사용하면 비효율적일 수 있는 구성 요소를 지속적으로 추가하고 제거할 필요가 없습니다.

실행할 수 있는 예는 다음과 같습니다.

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

이 예는 CardLayout을 사용하여 서로 원활하게 전환하는 방법을 보여줍니다. JFrame 내의 메뉴와 게임 패널.

위 내용은 JFrame 내에서 JPanel을 전환하기 위해 CardLayout을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.