Java 76(이벤트 처리 프로그램[내부클래스])

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

Java

목록 보기
78/108

내용은 Java 75랑 같음
내부클래스로 처리

EventInnerHandleApp

public class EventInnerHandleApp extends Frame {
    private static final long serialVersionUID = 1L;

    public EventInnerHandleApp(String title) {
        super(title);

        setLayout(new FlowLayout());
        Button exit=new Button("EXIT");
        exit.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 30));
        add(exit);

        //외부클래스의 메소드에서는 내부클래스의 생성자로 객체를 생성하여 내부클래스의 필드
        //또는 메소드를 접근제한자에 상관없이 객체를 참조해 접근하여 사용 가능
        exit.addActionListener(new ButtonEventHandle());

        setBounds(800, 200, 300, 300);
        setVisible(true);
    }

    public static void main(String[] args) {
        new EventInnerHandleApp("이벤트 처리");
    }

    //내부클래스(이벤트 처리 클래스)는 외부클래스의 필드 또는 메소드를 접근제한자에 상관없이
    //접근하여 사용 가능
    public class ButtonEventHandle implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    }
}

코드 해설

  • 이벤트 처리 클래스 ButtonEventHandle을 외부 클래스 EventInnerHandleApp의 내부 클래스로 작성합니다.

  • exit.addActionListener(new ButtonEventHandle());에서 ButtonEventHandle 클래스의 객체를 생성하여 이벤트 리스너로 등록합니다.

  • ButtonEventHandle 클래스는 ActionListener 인터페이스를 구현하여 actionPerformed() 메서드를 오버라이드합니다.

  • 내부 클래스는 외부 클래스의 필드와 메서드에 접근할 수 있습니다.

profile
최선을 다해 꾸준히 노력하는 개발자 망고입니당 :D

0개의 댓글