Java 79(WindowEvent, WindowListener)

Kang.__.Mingu·2024년 5월 18일
0

Java

목록 보기
81/108
  • 프레임의 [닫기] 버튼을 누른 경우 프로그램을 종료하는 이벤트 프로그램 작성

  • 프레임(Frame 객체)에서는 WindowEvent 발생됨으로 WindowListener 인터페이스를 상속받은 자식클래스를 작성하여 이벤트 처리 클래스로 사용


WindowListenerApp

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class WindowListenerApp extends Frame {
    public WindowListenerApp(String title) {
        super(title);

        setLayout(new FlowLayout());
        setBounds(800, 200, 300, 300);

        addWindowListener(new WindowEventHandle());

        setVisible(true);
    }

    public static void main(String[] args) {
        new WindowListenerApp("Window Listener");
    }

    // Listener 인터페이스를 상속받은 자식클래스(이벤트 처리 클래스)는 Listener 인터페이스의
    // 모든 추상메소드를 무조건 오버라이딩 선언
    // => 이벤트 처리 명령이 없는 불필요한 이벤트는
    public class WindowEventHandle implements WindowListener {
        @Override
        public void windowOpened(WindowEvent e) {
            System.out.println("windowOpened(WindowEvent e) 호출");
        }

        @Override
        public void windowClosing(WindowEvent e) {
            System.out.println("windowClosing(WindowEvent e) 호출");
            System.exit(0);
        }

        @Override
        public void windowClosed(WindowEvent e) {
            System.out.println("windowClosed(WindowEvent e) 호출");
        }

        @Override
        public void windowIconified(WindowEvent e) {
            System.out.println("windowIconified(WindowEvent e) 호출");
        }

        @Override
        public void windowDeiconified(WindowEvent e) {
            System.out.println("windowDeiconified(WindowEvent e) 호출");
        }

        @Override
        public void windowActivated(WindowEvent e) {
            System.out.println("windowActivated(WindowEvent e) 호출");
        }

        @Override
        public void windowDeactivated(WindowEvent e) {
            System.out.println("windowDeactivated(WindowEvent e) 호출");
        }
    }
}
profile
최선을 다해 꾸준히 노력하는 개발자 망고입니당 :D

0개의 댓글