'창 2' 버튼을 누르면 Part1클래스가 작동을 하며 창이 켜집니다.
본래의 창은 setVisible(false)로 인해 안보이게 되어 창이 전환되는 예제입니다.
버튼을 누르면 다른 패널로 전환됩니다.
처음 창 부분
public class Dinae extends JFrame { public Dinae() { super("창1"); //타이틀 JPanel jPanel = new JPanel(); JButton btn1 = new JButton("창 2"); setSize(300, 200); //창 크기 설정 jPanel.add(btn1); add(jPanel); Dimension frameSize = getSize(); Dimension windowSize = Toolkit.getDefaultToolkit().getScreenSize(); setLocation((windowSize.width - frameSize.width) / 2, (windowSize.height - frameSize.height) / 2); //화면 중앙에 띄우기 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setVisible(true); btn1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { new Part1(); setVisible(false); // 창 안보이게 하기 } }); } public static void main(String[] args) { new Dinae(); } }두번째 창 부분
public class Part1 extends JFrame{ Part1(){ super("창2"); //타이틀 JPanel jPanel = new JPanel(); jPanel.setBackground(Color.BLUE); setSize(300, 200); add(jPanel); Dimension frameSize = getSize(); Dimension windowSize = Toolkit.getDefaultToolkit().getScreenSize(); setLocation((windowSize.width - frameSize.width) / 2, (windowSize.height - frameSize.height) / 2); //화면 중앙에 띄우기 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setVisible(true); } }예제에서 중요한 부분↓
btn1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { new Part1(); setVisible(false); // 창 안보이게 하기 } });실행시 ↓
버튼을 누르면 창이 전환되는 Java 예제입니다.
// Study01.java
package study;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Study01 {
public static void main(String[] args) {
// 프레임 생성
JFrame frm = new JFrame();
// 프레임 제목 설정
frm.setTitle("슬라임 퇴치하기");
// 프레임 크기 설정
frm.setSize(350, 300);
// 프레임을 화면 가운데에 배치
frm.setLocationRelativeTo(null);
// 프레임을 닫았을 때 메모리에서 제거되도록 설정
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 레이아웃 설정
frm.getContentPane().setLayout(null);
// 버튼 생성
JButton btn1 = new JButton("슬라삐");
JButton btn2 = new JButton("슬라디");
// 버튼 위치와 크기 설정
btn1.setBounds(30, 170, 122, 30);
btn2.setBounds(182, 170, 122, 30);
// 프레임에다가 버튼 추가
frm.getContentPane().add(btn1);
frm.getContentPane().add(btn2);
// 라벨 설정
JLabel lbl = new JLabel();
lbl.setBounds(30, 200, 274, 50);
lbl.setText("게임을 시작합니다");
lbl.setHorizontalAlignment(JLabel.CENTER); // 수평 가운데 정렬
frm.getContentPane().add(lbl);
// ★ 버튼이 눌렸을때
btn1.addActionListener(event -> {
lbl.setText("나는 슬라삐");
});
btn2.addActionListener(event -> {
lbl.setText("나는 슬라디");
});
// 프레임이 보이도록 설정
frm.setVisible(true);
}
}