[java] 자바 스윙 컴포넌트에서 화면 전환을 구현하는 방법을 알려주세요.
목차
카드 레이아웃을 활용한 화면 전환
카드 레이아웃은 여러 개의 패널을 겹쳐 놓고, 특정 패널을 보이게 하는 레이아웃 매니저입니다. 각 패널은 카드(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나 웹 애플리케이션을 사용하는 것이 더 일반적이지만, 여전히 스윙을 사용하는 경우가 있으므로 유용한 기술을 익히는 것이 도움이 될 것입니다.