내용은 Java 75랑 같음
내부클래스로 처리
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() 메서드를 오버라이드합니다.
내부 클래스는 외부 클래스의 필드와 메서드에 접근할 수 있습니다.