Post List

태그

2018년 8월 25일 토요일

자바 이벤트(Event)

이벤트(Event)

사용자가 프로그램 코드에 의하여 발생할 수 있는 object를 Event가 발생한 인스턴스를 이벤트 소스(Event Sources), Event가 발생했을 때 발생한 Event를 처리해주는 것을 이벤트 핸들러(Event Handlers)라고 함


ActionEvent
버튼, 리스트, 메뉴 등의 컴포넌트가 눌리거나 선택이 되었을 때 발생하는 이벤트

AdjustmentEvent
스크롤 바와 같은 조정 가능한 컴포넌트에서 조정이 일어나면 발생하는 이벤트

ComponentEvent
컴포넌트의 모습이나 이동, 크기가 변화될 때 발생하는 이벤트

ItemEvent
리스트와 같은 선택항목이 있는 컴포넌트에서 선택항목이 선택될 때 발생하는 이벤트

TextEvent
텍스트 컴포넌트에서 값이 입력될 때 발생하는 이벤트

ContainerEvent
컨테이너에 컴포넌트가 추가되거나 제거될 때 발생하는 이벤트

FocusEvent
컴포넌트에 초점(Focus)이 들어올 때 발생하는 이벤트

PaintEvent
컴포넌트가 그려져야할 때 발생하는 이벤트

WindowEvent
윈도우가 활성화되거나 비활성화될 때, 최소, 최대, 종료될 때 발생하는 이벤트

KeyEvent
키보드로부터 입력될 때 발생하는 이벤트

MouseEvent
마우스가 눌려지거나 움직일 때, 마우스 커서가 컴포넌트 영역에 들어가거나 벗어날 때 발생하는 이벤트


이벤트(Event) 구조와 리스너
자바는 GUI를 표시하는 클래스와는 별도로 새 클래스를 만들어서 이벤트의 처리를 맡기는 방법인 위임형 이벤트 모델 (Delegation Event Model)을 사용
Delegation(위임) 방식에서는 이벤트를 처리할 클래스를 만들고, 그 클래스를 이벤트를 발생 시키는 컴포넌트에 등록하기만 하면 됨. 이때 이벤트처리를 위해 등록되는 클래스를 리스너(listener)라고 함

리스너 인터페이스의 특징
- 하나의 컴포넌트에 하나, 혹은 여러 개의 리스너를 등록할 수 있음
- 리스너는 반드시 event handler(실제로 event를 처리하는 method)를 구현해야 함
- 컴포넌트에 등록된 리스너가 없으면, 그 컴포넌트의 이벤트는 무시됨
 -리스너는 해당 이벤트를 처리하기 위해 그 이벤트에 해당하는 interface를 implement하면 됨





댓글 없음:

댓글 쓰기