java
JAVA - CardLayout 이란?
CardLayout 른 여러 개의 카드를 쌓아 보여주는 레이아웃입니다.
- 카드 레이아웃은 컨테이너의 각 구성 요소를 카드로 취급합니다.
- 한 번에 하나의 카드만 보이며, 컨테이너는 일련의 카드 역할을 합니다.
- 카드 레이아웃에 추가된 첫 번째 구성 요소는 컨테이너가 처음 표시 될 때 보이는 구성 요소입니다.
(Next 메소드를 이용해 다음 화면을 출력합니다.)
매개변수:
CardLayout()
기본 레이아웃을 설정합니다.
CardLayout(int hgap, int vgap);
가로 세로 여백을 설정합니다.
// ex.1)
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Ex04 extends JFrame implements ActionListener{
Container c;
CardLayout card;
JButton btn1, btn2, btn3;
Ex04() {
c = getContentPane();
// 가로 세로 여백을 각각 10으로 설정합니다.
card = new CardLayout(10, 10);
c.setLayout(card);
// 사과, 배, 바나나 버튼을 겹칩니다.
// 사과를 클릭하면 배가 나오고,
// 배를 클릭하면 바나나가 출력됩니다.
btn1 = new JButton("사과");
btn2 = new JButton("배");
btn3 = new JButton("바나나");
// 버튼을 클릭했을 때 액션을 설정합니다.
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
c.add("이전", btn1);
c.add("다음", btn2);
c.add("현재", btn3);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(500, 500);
}
public static void main(String[] args) {
Ex04 c = new Ex04();
c.setSize(400, 400);
c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
c.setVisible(true);
}
// 사용자가 버튼을 클릭했을 때
// 다음 화면으로 전환시킵니다.
@Override
public void actionPerformed(ActionEvent e) {
card.next(c);
}
}
다음은 버튼을 눌렀을 때 equals 로 버튼 이름을 비교해서 다른 반응을 설정할 수 있습니다. 버튼 반응 설정은 actionPerformed() 함수에서 조절할 수 있습니다.
// ex.2)
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Ex04 extends JFrame implements ActionListener{
Container c;
CardLayout card;
JButton btn1, btn2, btn3;
Ex04() {
c = getContentPane();
// 가로 세로 여백을 각각 10으로 설정합니다.
card = new CardLayout(10, 10);
c.setLayout(card);
// 사과, 배, 바나나 버튼을 겹칩니다.
// 사과를 클릭하면 배가 나오고,
// 배를 클릭하면 바나나가 출력되는 레이아웃입니다.
btn1 = new JButton("사과");
btn2 = new JButton("배");
btn3 = new JButton("바나나");
// 버튼을 클릭했을 때 액션을 설정합니다.
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
// 임의의 이름을 지정합니다.
c.add("a", btn1);
c.add("b", btn2);
c.add("c", btn3);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(500, 500);
}
public static void main(String[] args) {
Ex04 c = new Ex04();
c.setSize(400, 400);
c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
c.setVisible(true);
}
// 사용자가 버튼을 클릭했을 때
// 다음 화면으로 전환시킵니다.
@Override
public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
// 사과 버튼을 선택했을 때 메시지
if(str.equals("사과")) {
System.out.println("사과입니다.");
// 배 버튼을 선택했을 때 메시지
}else if(str.equals("배")) {
System.out.println("배입니다.");
}else {
// 바나나 버튼을 선택했을 때 메시지
System.out.println("바나나입니다.");
}
card.next(c);
}
}
0 댓글