반응형
이벤트 개요
1. 이벤트 개념
이벤트
- AWT 구성 요소에 대해 사용자가 마우스나 키보드 등을 사용하여 조작을 했을 경우 일어나는 상황변화를 의미한다.
- AWT환경에서 발생될 수 있는 이벤트를 클래스로 정의하였으며 java.awt.event 패키지에 정의되어 있다.
- 발생될 수 있는 이벤트의 종류는 정해져 있으며 프로그래머가 기능을 부여한다.
2. 이벤트 핸들러
이벤트핸들러
- 이벤트가 발생했을 경우 이에 대응하여 기능을 수행하도록 만든 클래스이다.
- 이벤트 인터페이스를 구현하여 작성하거나 이벤트 클래스를 상속 받아 작성한다.
- 내부 클래스로 작성하는 것이 효과적이다.
3. 이벤트 클래스
이벤트 종류
이벤트 | 이벤트 내용 |
ActionEvent | 버튼이 눌려지거나 텍스트 상자에서 엔터키를 누를 때 발생 |
AdjustmentEvent | 스크롤바와 같은 조정 가능한 컴포넌트에서 조정이 일어날 때 발생 |
ItemEvent | 리스트나 초이스에서 항목이 선택될 때 발생 |
TextEvent | 텍스트 컴포넌트의 내용이 바뀔 때 발생 |
ComponentEvent | 컴포넌트의 크기나 모습이 변화될 때 발생 |
ContainerEvent | 컨테이너 컴포넌트가 나타나거나 사라질 때 발생 |
FocusEvent | 컴포넌트에 포커스가 형성되었을 때 발생 |
KeyEvent | 키보드 입력에 의해 발생 |
MouseEvent | 마우스 조작에 의해 발생 |
MouseWheelEvent | 마우스 휠의 조작에 의해 발생 |
PaintEvent | 컴포넌트가 그려질 때 발생 |
WindowEvent | 윈도우에 변화가 일어날 때 발생 |
주요 컴포넌트에 따른 이벤트
컴포넌트 | 이벤트 |
Applet | ContainerEvent, FocusEvent, KeyEvent, MouseEvent, ComponentEvent |
Button | ActionEvent, FocusEvent, KeyEvent, MouseEvent, ComponentEvent |
Checkbox | ItemEvent, FocusEvent, KeyEvent, MouseEvent, ComponentEvent |
Choice | ItemEvent, FocusEvent, KeyEvent, MouseEvent, ComponentEvent |
Component | FocusEvent, KeyEvent, MouseEvent, ComponentEvent |
Container | ContainerEvent, FocusEvent, KeyEvent, MouseEvent, ComponentEvent |
Frame | ContainerEvent, WindowEvent, FocusEvent, KeyEvent, MouseEvent, ComponentEvent |
List | ActionEvent, FocusEvent, KeyEvent, MouseEvent, ItemEvent, ComponentEvent |
Menu | ActionEvent |
MenuItem | ActionEvent |
Panel | ContainerEvent, FocusEvent, KeyEvent, MouseEvent, ComponentEvent |
Scrollbar | AdjustmentEvent, FocusEvent, KeyEvent, MouseEvent, ComponentEvent |
Textarea | TextEvent, FocusEvent, KeyEvent, MouseEvent, ComponentEvent |
TextField | ActionEvent, TextEvent,FocusEvent, KeyEvent, MouseEvent, ComponentEvent |
Window | ContainerEvent, WindowEvent, FocusEvent, KeyEvent, MouseEvent, ComponentEvent |
AWT 이벤트 처리구조
1. 이벤트 프로그램 작성 절차
절차
- 컴포넌트에 따른 이벤트 클래스를 결정
- 이벤트 핸들러 클래스 작성
- 이벤트 소스와 이벤트 핸들러를 연결
이벤트 리스너
1. 이벤트 리스너 개요
이벤트 리스너
- 이벤트 처리를 실제적으로 담당하는 인터페이스
- 이벤트가 발생되면 해당 이벤트 클래스를 전달받는다.
- 이벤트 리스너를 구현하여 이벤트 핸들러 클래스를 작성해야 한다.
- 이벤트 리스너를 구현하면 반드시 특정 메소드를 정의해야한다.
2. 이벤트 리스너 종류
이벤트 리스너 관련 메소드
- 인터페이스는 구현하는 클래스에서 메소드의 실제 기능을 부여하도록 되어있다.
- 리스너가 결정되면 해당 메소드를 정의하고 기능을 부여하는 클래스를 이벤트 핸들러 클래스라고 한다.
리스너 | 관련 메소드 | 기능 |
ActionListener | actionPerformed(ActionEvent e) | 버튼이 눌려질 경우 처리해야 할 내용을 기술함 |
AdjustmentListener | adjustmentValueChanged(AdjustmentEvent e) | 스크롤바의 막대가 움직여질 경우 처리해야 할 내용을 기술함 |
ItemListener | itemStateChanged(ItemEvent e) | 리스트 또는 드롭다운리스트의 항목을 선택했을 경우 처리해야 할 내용을 기술함 |
TextListener | textValueChanged(TextEvent e) | 텍스트상자의 문자 입력상황에 따라 처리해야 할 내용을 기술함 |
KeyListenerKeyAdapter | keyPressed(KeyEvent e)keyReleased(KeyEvent e)keyTyped(KeyEvent e) | 키보드의 키를 누르거나 떼거나 타이핑할 때 |
MouseListenerMouseAdapter | mouseClicked(MouseEvent e)mouseEntered(MouseEvent e)mouseExited(MouseEvent e)mousePressed(MouseEvent e)mouseReleased(MouseEvent e) | 마우스 버튼을 누르거나 뗄 떼, 마우스 포인터가 특정 영역 내로 들어오거나 나갈 때 |
MouseMotionListenerMouseMotionAdapter | mouseDragged(MouseEvent e)mouseMoved(MouseEvent e) | 마우스 버튼을 누른 채 끌기 하거나 마우스를 움직일 때 |
MouseWheelListener | mouseWheelMoved(MouseWheelEvent e) | 마우스의 휠 버튼을 움직일 때 |
WindowListenerWindowAdapter | windowOpened(WindowEvent e)windowClosing(WindowEvent e)windowClosed(WindowEvent e)windowActivated(WindowEvent e)windowDeactivated(WindowEvent e)windowIconified(WindowEvent e)windowDeiconified(WindowEvent e)windowStateChanged(WindowEvent e)windowGainedFocus(WindowEvent e)windowLostFocus(WindowEvent e) | 윈도우 열기윈도우 닫기윈도우 종료윈도우 활성화윈도우 비활성화윈도우 아이콘화윈도우 비아이콘화윈도우 상태변화윈도우 포커스 얻음윈도우 포커스 잃음 |
3. 리스너 클래스의 사용
4. Adapter 클래스의 사용
반응형
'Develop > Java' 카테고리의 다른 글
JAVA 그래픽 구조, 그래픽 메소드 (0) | 2021.08.09 |
---|---|
JAVA 상위하위레벨 이벤트 (0) | 2021.08.09 |
JAVA Container & Layout (0) | 2021.08.09 |
JAVA AWT & Swing (0) | 2021.08.09 |
JAVA Generic (0) | 2021.08.09 |