+ All Categories
Home > Documents > AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. ·...

AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. ·...

Date post: 10-May-2021
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
33
AWT 이벤트 처리하기 1 이벤트 처리 방식 AWT 이벤트 처리하기 1. 이벤트 처리 방식 2. 이벤클래2. 이벤 클래 3. 이벤트 어댑터 4. 이벤트의 종류 1
Transcript
Page 1: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

AWT 이벤트 처리하기

1 이벤트 처리 방식

AWT 이벤트 처리하기

1. 이벤트 처리 방식

2. 이벤트 클래스와 리스너2. 이벤 클래 와 리 너

3. 이벤트 어댑터

4. 이벤트의 종류

1

Page 2: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

이벤트(Event)이벤트(Event)

이벤트▶사용자가 UI 컴포넌트에 대해 취하▶사용자가 UI 컴포넌트에 대해 취하

는 행위로 인한 사건

이벤트 기반 프로그래밍▶무한루프를 돌면서 사용자의 행위로▶무한루프를 돌면서 사용자의 행위로

인한 이벤트를 청취하여 응답하는 형태로 작동하는 프로그래밍태로 작동하는 프로그래밍

2

Page 3: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

이벤트 처리이벤트 처리

j t tjava.awt.event▶AWT 컴포넌트에서 발생하는 다양한 이▶AWT 컴포넌트에서 발생하는 다양한 이

벤트를 처리하기 위한 인터페이스와 클래스 제공래스 제공

xxxListener, xxxEvent, xxxAdapter,

위임형 이벤트 처리 모델▶컴포넌트(이벤트 소스)에 특정 이벤트▶컴포넌트(이벤트 소스)에 특정 이벤트

를 처리하기 위한 객체(이벤트 리스너)를 따로 등록함

3

Page 4: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

이벤트 클래스와 이벤트 리스너이벤트 클래스와 이벤트 리스너

▶컴포넌트에서 발생할 수 있는 이벤트▶컴포넌트에서 발생할 수 있는 이벤트들을 분류한 이벤트 클래스들이 존재

이벤트 클래스는 종류에 맞는 정보와 메소이벤트 클래스는 종류에 맞는 정보와 메소드를 가짐

▶컴포넌트마다 발생될 수 있는 이벤트▶컴포넌트마다 발생될 수 있는 이벤트가 정해짐

의 경우 발생 가능한 이벤트Button의 경우 발생 가능한 이벤트: ActionEvent, ComponentEvent, F E t K E t M E tFocusEvent, KeyEvent, MouseEvent

ActionEvent가 발생할 수 있는 컴포넌트: Button, List, MenuItem, TextField

4

Page 5: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

이벤트 클래스와 이벤트 리스너이벤트 클래스와 이벤트 리스너

▶리스너는 이벤트 처리를 위한 인터페이스

xxxEvent 클래스는 xxxListener 인터페이스xxxEvent 클래스는 xxxListener 인터페이스와 대응됨

▶ Li t 에는 저수준 이벤트를 처리하▶xxxListener에는 저수준 이벤트를 처리하기 위한 메소드들이 존재

예 - KeyEvent 처리를 위한 KeyListener

: void keyPressed(KeyEvent e)void keyPressed(KeyEvent e)

: void keyReleased(KeyEvent e)

: oid ke T ped(Ke E ent e): void keyTyped(KeyEvent e) 5

Page 6: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

이벤트 처리 과정이벤트 처리 과정

▶처리할 이벤트를 결정▶처리할 이벤트를 결정ActionEvent라 하자

▶ 현▶해당 리스너를 구현하는 클래스를 정의ActionListener를 구현하는 클래스를MyListener라 하자

: void actionPerformed(ActionEvent e)라는 메소드를 구현해야 함

▶객체를 생성하여 해당 컴포넌트의 이벤▶객체를 생성하여 해당 컴 넌 의 이벤트 리스너로 등록함

this addActionListener(new MyListener());this.addActionListener(new MyListener());

6

Page 7: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

7

Page 8: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

8

Page 9: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

이벤트 클래스 계층 구조이벤트 클래스 계층 구조

OOObjectObject

ComponentEventComponentEvent ContainerEventContainerEventEventObjectEventObject ActionEvent

AdjustmentEvent

FocusEventFocusEvent

AWTEventAWTEvent AdjustmentEvent

ItemEvent

InputEventInputEvent

KeyEventKeyEvent

TextEvent MouseEventMouseEvent

PaintEventPaintEvent

WindowEventWindowEvent

9

Page 10: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

이벤트 어댑터이벤트 어댑터

▶특정 이벤트에 대한 편리한 처리▶특정 이벤트에 대한 편리한 처리이벤트 처리 메소드가 2개 이상인 리스너 인터페이스(xxxListener)들에 대해너 인터페이스(xxxListener)들에 대해그것을 구현한 어탭터 클래스(xxxAdapter)가 존재함(xxxAdapter)가 존재함

각 이벤트 처리 메소드는 빈 블록임

▶어댑터가 있는 경우 리스너를 현▶어댑터가 있는 경우, 리스너를 구현하는 대신 어댑터를 상속하는 클래스를 정의

10

Page 11: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

11

Page 12: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

ActionEvent와 ActionListenerActionEvent와 ActionListener

▶ActionListener의 메소드void actionPerformed(ActionEvent ev)void actionPerformed(ActionEvent ev)

버튼을 클릭하는 경우, 메뉴 항목을 클릭하는경우 TextField에서 ‘엔터키’를 치는 경우경우, TextField에서 엔터키 를 치는 경우, 리스트의 항목을 더블 클릭하는 경우

▶ActionEvent의 메소드▶ActionEvent의 메소드String getActionCommand()

: 명령의 이름을 리턴

Object getSource()

: EventObject에서 상속된 메소드12

Page 13: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

13

Page 14: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

14

Page 15: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

15

Page 16: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

16

Page 17: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

WindowEvent와 WindowListenerWindowEvent와 WindowListener

▶WindowListener의 메소드윈도우의 상태 변화를 야기하는 경우윈 우의 상태 변화를 야기하는 경우

void windowActivated(WindowEvent ev)

void windowClosed(WindowEvent ev)void windowClosed(WindowEvent ev)

……

▶Wi d E t의 메소드▶WindowEvent의 메소드int getNewState()

: 0이면 보통 상태임

int getOldState()

Window getWindow() 17

Page 18: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

18

Page 19: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

ItemEvent와 ItemListenerItemEvent와 ItemListener

▶ItemListener의 메소드

S C ( )void itemStateChanged(ItemEvent ev)

Checkbox, CheckboxMenuItem, Choice, List에서 아이템을 선택하거나 해제하는 경우

▶ItemEvent의 메소드

Object getItem()Object getItem()

int getStateChange()

19

Page 20: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

20

Page 21: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

21

Page 22: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

22

Page 23: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

23

Page 24: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

AdjustmentEvent와 리스너AdjustmentEvent와 리스너

▶Adj t tLi t 의 메소드▶AdjustmentListener의 메소드

void adjustmentValueChanged (AdjustmentEvent ev)

스크롤바의 상태 변화가 생길 때상 생

▶AdjustmentEvent의 메소드

i t g tV l ()int getValue()

int getAdjustmentType()

: UNIT_INCREMENT, UNIT_DECREMENT, BLOCK_INCREMENT, BLOCK_DECREMENT, TRACK

24

Page 25: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

25

Page 26: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

KeyEvent와 KeyListenerKeyEvent와 KeyListener

▶K Li t 의 메소드▶KeyListener의 메소드keyPressed(KeyEvent ev)

keyReleased(KeyEvent ev)

keyTyped(KeyEvent ev)y yp y

▶KeyEvent의 메소드char getKeyChar()char getKeyChar()

int getKeyCode()

int getKeyLocation()int getKeyLocation()

static String getKeyText(int keyCode)

( )static String getKeyModifiersText(int) 26

Page 27: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

27

Page 28: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

MouseEvent와 리스너MouseEvent와 리스너

▶▶MouseListener의 메소드mouseClicked(MouseEvent ev)

……▶MouseMotionListener의 메소드▶MouseMotionListener의 메소드mouseDragged(MouseEvent ev)

mouseMoved(MouseEvent ev)mouseMoved(MouseEvent ev)

▶MouseEvent의 메소드int getButton()

int getCickCount()

Point getPoint()28

Page 29: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

29

Page 30: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

30

Page 31: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

31

Page 32: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

TextEventTextEvent

▶TextListener의 메소드

C ( )textValueChanged(TextEvent ev)

TextArea와 TextFiled에서 텍스트에변화가 생겼을 때

▶FocusListener의 메소드▶FocusListener의 메소드

컴포넌트가 입력 포거스를 얻거나 잃을 때을 때

focusGained(FocusEvent ev)

focusLost(FocusEvent ev)32

Page 33: AWT이벤트처리하기 - Kangwonysmoon/courses/2011_1/android/... · 2016. 6. 2. · 이벤트클래스와이벤트리스너. 컴포넌트에서 발생할 수 있는 이벤트 들을

33


Recommended