이벤트 소스 클래스에서 직접 이벤트 처리
public class EventUIHandleApp extends Frame implements ActionListener {
private static final long serialVersionUID = 1L;
public EventUIHandleApp(String title) {
super(title);
setLayout(new FlowLayout());
Button exit=new Button("EXIT");
exit.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 30));
add(exit);
//이벤트 소스가 작성된 UI 클래스가 이벤트 처리 클래스이므로 this 키워드를 사용해
//현재 클래스의 객체를 제공받아 이벤트 처리
exit.addActionListener(this);
setBounds(800, 200, 300, 300);
setVisible(true);
}
public static void main(String[] args) {
new EventUIHandleApp("이벤트 처리");
}
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
이벤트 처리 클래스 EventUIHandleApp이 ActionListener 인터페이스를 직접 구현합니다.
exit.addActionListener(this);에서 EventUIHandleApp 클래스의 객체 자신을 이벤트 리스너로 등록합니다.
EventUIHandleApp 클래스의 actionPerformed() 메서드를 오버라이드하여 이벤트 처리 로직을 구현합니다.
이벤트 소스와 이벤트 처리 클래스가 동일한 클래스 내에 존재합니다.