EventClass(이벤트클래스)

Soozoo·2024년 6월 28일

JAVA

목록 보기
32/41

예제 코드 설명

다음은 버튼 클릭 이벤트와 윈도우 종료 이벤트를 처리하기 위해 익명 클래스를 사용하는 예제 코드입니다.

package ex06.innerClass;

import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;

public class InnerEventMain02 {

    class EventHandler implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            //System.out.println("ActionEvent 발생했습니다.");
            //System.out.println(e.getActionCommand());
            System.out.println(e.getSource());
        }
    }

    public static void main(String[] args) {
        Frame frame = new Frame("이벤트 처리 - 이너 클래스"); // 프레임(화면)
        Button btn = new Button("Button - start");

        // 2. 익명 클래스 사용
        btn.addActionListener(new ActionListener() { // 익명 클래스
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println(e.getActionCommand());
                System.out.println(e.getSource());
            }
        });

        // 3. 윈도우 종료 이벤트 처리
        frame.addWindowListener(new WindowAdapter() { // 익명 클래스
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0); // X 를 누르면 닫기
            }
        });

        frame.add(btn); // 프레임(윈도우)에 버튼 컴포넌트를 추가
        frame.setVisible(true); // 프레임을 화면에 보이게 설정
        frame.setSize(300, 200); // 프레임 크기 설정
        frame.setLocation(300, 150); // 프레임 위치 설정
    }
}

코드 설명

  1. EventHandler 클래스: ActionListener 인터페이스를 구현하는 내부 클래스입니다. actionPerformed 메소드는 이벤트 소스를 출력합니다.
  2. main 메소드: 프레임과 버튼을 생성하고, 버튼 클릭 이벤트와 윈도우 종료 이벤트를 처리하기 위해 익명 클래스를 사용합니다.

익명 클래스 사용

  1. 버튼 클릭 이벤트 처리:

    java코드 복사
    btn.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println(e.getActionCommand());
            System.out.println(e.getSource());
        }
    });
    
    • 버튼에 클릭 이벤트를 처리할 ActionListener를 익명 클래스로 구현하여 등록합니다. 버튼을 클릭하면 actionPerformed 메소드가 호출되어 클릭한 버튼의 정보가 출력됩니다.
  2. 윈도우 종료 이벤트 처리:

    java코드 복사
    frame.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosing(WindowEvent e) {
            System.exit(0); // X를 누르면 프로그램 종료
        }
    });
    
    • 프레임에 윈도우 종료 이벤트를 처리할 WindowAdapter를 익명 클래스로 구현하여 등록합니다. 윈도우의 X 버튼을 클릭하면 windowClosing 메소드가 호출되어 프로그램이 종료됩니다.

실행 결과

profile
넙-죽

0개의 댓글