본문 바로가기
Programming/Java

[Java] 버튼을 누르면 창 전환하기 / 자바 GUI/Swing 예제

by castberry_ 2021. 2. 28.
반응형

'창 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 예제입니다. 

반응형

댓글