자바 이벤트 처리
- 이벤트 기반 프로그래밍(Event Driven Programming)
- 이벤트의 발생에 의해 프로그램 흐름이 결정되는 방식
- 이벤트가 발생하면 이벤트를 처리하는 루틴(이벤트 리스너) 실행
- 실행될 코드는 이벤트의 발생에 의해 전적으로 결정
- 반대되는 개념 : 배치 실행(batch programming)
- 프로그램의 개발자가 프로그램의 흐름을 결정하는 방식
- 이벤트 종류
- 사용자의 입력 : 마우스 드래그, 마우스 클릭, 키보드 누름 등
- 센서로부터의 입력, 네트워크로부터 데이터 송수신
- 다른 응용프로그램이나 다른 스레드로부터의 메시지
- 이벤트의 발생에 의해 프로그램 흐름이 결정되는 방식
- 이벤트가 처리되는 과정
- 이벤트 발생
- 예 :마우스의 움직임 혹은 키보드입력
- 이벤트 객체 생성
- 현재 발생한 이벤트에 대한 정보를 가진 객체
- 응용프로그램에 작성된 이벤트 리스너 찾기
- 이벤트 리스너 실행
- 리스너에 이벤트 객체 전달
- 리스너 코드 실행
- 이벤트 발생
- 이벤트 정보를 리턴하는 메소드
- 이벤트 객체
- 이벤트 리스너 인터페이스
- 이벤트 리스너 작성 방법 3 가지
- 독립 클래스로 작성
- 이벤트 리스너를 완전한 클래스로 작성
- 이벤트 리스너를 여러 곳에서 사용할 때 적합
- 내부 클래스(inner class)로 작성
- 클래스 안에 멤버처럼 클래스 작성
- 이벤트 리스너를 특정 클래스에서만 사용할 때 적합
- 익명 클래스(anonymous class)로 작성
- 클래스의 이름 없이 간단히 리스너 작성
- 클래스 조차 만들 필요 없이 리스너 코드가 간단한 경우에 적합
- 독립 클래스로 작성
- 어댑터 클래스