[java] 자바 스윙 컴포넌트에서 화면 전환을 구현하는 방법을 알려주세요.

목차

  1. 카드 레이아웃을 활용한 화면 전환
  2. 코드 예시
  3. 참고 자료

카드 레이아웃을 활용한 화면 전환

카드 레이아웃은 여러 개의 패널을 겹쳐 놓고, 특정 패널을 보이게 하는 레이아웃 매니저입니다. 각 패널은 카드(card)라고 생각할 수 있으며, 사용자의 요청에 따라 다른 카드를 보여줌으로써 화면을 전환하는 효과를 줄 수 있습니다.

코드 예시

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class CardLayoutExample {
    public static void main(String[] args) {
        JFrame frame = new JFrame("CardLayout Example");
        JPanel cards = new JPanel(new CardLayout());

        JPanel card1 = new JPanel();
        card1.add(new JLabel("Card 1"));
        cards.add(card1, "Card1");

        JPanel card2 = new JPanel();
        card2.add(new JLabel("Card 2"));
        cards.add(card2, "Card2");

        CardLayout cardLayout = (CardLayout) cards.getLayout();
        
        JButton nextButton = new JButton("Next");
        nextButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                cardLayout.next(cards);
            }
        });

        frame.add(cards, BorderLayout.CENTER);
        frame.add(nextButton, BorderLayout.SOUTH);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setVisible(true);
    }
}

위 코드는 두 개의 패널을 가진 카드 레이아웃을 생성하고, “Next” 버튼을 클릭할 때마다 다음 카드를 보여주는 간단한 예시입니다.

참고 자료

위 예제 코드를 실행해보면 카드 레이아웃을 통해 화면을 전환하는 방법을 이해할 수 있을 것입니다. 요즘은 JavaFX나 웹 애플리케이션을 사용하는 것이 더 일반적이지만, 여전히 스윙을 사용하는 경우가 있으므로 유용한 기술을 익히는 것이 도움이 될 것입니다.