Calculator๋ฅผ ๋ง๋ค๋ฉด์ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ํ๋ฉด์ ๊ธ์๊ฐ ์์ฑ๋๊ฒ ํ๊ณ ์ถ์๋ค.
์ด๋ฅผ ์ํด ํ์ํ ๊ฐ๋ ์ธ Event์ ๋ํด์ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํ๊ณ ์ ํ๋ค.
Event
- GUI ์ปดํฌ๋ํธ์์ ๋ฐ์๋๋ ํ์๋ฅผ ์๋ฏธํ๋ค.
ex) ๋ฒํผ ํด๋ฆญ, ๋ฆฌ์คํธ ์ ํ, ์ฒดํฌ๋ฐ์ค ์ฒดํฌ ๋ฑ
๋ชจ๋ ์ด๋ฒคํธ ํด๋์ค๋ java.util.EventObjectํด๋์ค๋ก๋ถํฐ ์์๋ฐ๋๋ค.
ํด๋น ํด๋์ค์๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ ๊ฐ์ฒด๋ฅผ ์๋ ค์ฃผ๋ getSource() ๋ฉ์๋๊ฐ ์กด์ฌํ๋ค.
// EventObject ํด๋์ค ์ฃผ์ ๋ฉ์๋
Object getSource() // ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ ๊ฐ์ฒด ๋ฐํ
String toString() // ์ด๋ฒคํธ ์ด๋ฆ์ ๋ฌธ์์ด๋ก ๋ฐํ
Event 3๋ ์์ฑ
1. Event Source
- ์ด๋ฒคํธ๊ฐ ๋ฐ์๋๋ ์ปดํฌ๋ํธ
ex) ๋ฒํผ, ์ฒดํฌ๋ฐ์ค, ๋ฆฌ์คํธ, ๋ง์ฐ์ค ๋ฑ
2. Event Listener
- ์ด๋ฒคํธ ์์ค์์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋์ง ๊ฒ์ฌํ๊ณ ์๋ค๊ฐ ์ด๋ฒคํธ๊ฐ ๋ฐ์๋๋ฉด ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋ง๋ ์ธํฐํ์ด์ค
3. Event Handler
- ์ด๋ฒคํธ ๋ฆฌ์ค๋์ ํฌํจ๋์ด์๋ ๋ฉ์๋๋ก ๋ฐ์๋ ์ด๋ฒคํธ ๊ฐ์ฒด๋ฅผ ๋ฐ์์ ์ค์ ๋ก ์ฒ๋ฆฌํด์ค๋ค.
Component Event ์ฒ๋ฆฌ ๋จ๊ณ
1. ์ด๋ฒคํธ ์์ค ๊ฒฐ์
- ํ๋์ ์๋์ฐ์ ์ฌ๋ฌ๊ฐ์ ์ปดํฌ๋ํธ๊ฐ ์กด์ฌํ ์ ์์ผ๋ฏ๋ก ์ด๋ฒคํธ๊ฐ ๋ฐ์๋๋ฉด ์ฒ๋ฆฌํ ์ปดํฌ๋ํธ ๊ฒฐ์
2. ์ด๋ฒคํธ ๋ฆฌ์ค๋ ์์ฑ
- ํด๋น ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํด ์ด๋ฒคํธ ๋ฆฌ์ค๋ ํด๋์ค ์์ฑ
3. ์ด๋ฒคํธ ์์ค์ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ์ฐ๊ฒฐ
- add~Listener()ํจ์๋ฅผ ํตํด ์ฐ๊ฒฐํ๋ค.
4. ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ด์ฉ ๊ตฌํ
- ์ด๋ฒคํธ ๋ฆฌ์ค๋์ ์ถ์ ๋ฉ์๋๋ฅผ ๊ตฌ์ฒดํํ๋ค
[์ด๋ฒคํธ์ ์ข ๋ฅ]
ActionEvent()
- ๋ฒํผ, ๋ฆฌ์คํธ, ๋ฉ๋ด๊ฐ ์ ํ๋์์ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
- ํ์
// src : ์ด๋ฒคํธ๋ฅผ ๋ฐ์ํ ๊ฐ์ฒด, type : ์ด๋ฒคํธ ํ์
ActionEvent(Object src, int type, String cmd)
ActionEvent(Object src, int type, String cmd, int modifiers)
// ActionEvent ์ฃผ์ ๋ฉ์๋
String getActionCommand() // ActionEvent๋ฅผ ๋ฐ์์ํจ ๊ฐ์ฒด์ ์ด๋ฆ ๋ฐํ
int getModifiers() // ์ด๋ฒคํธ ๋ฐ์ ์ ๊ฐ์ด ์ฌ์ฉ๋ ์์ ์ ํค๋ฅผ ๋ํ๋ด๋ ์์๊ฐ ๋ฐํ
InputEvent()
- Component ํด๋์ค๋ก๋ถํฐ ์์๋ ์ถ์ํด๋์ค์ด๋ค.
- ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋ ๊ฐ์ด ์ฌ์ฉ๋ ์์ ํค๋ฅผ ๊ตฌ๋ถํ๊ธฐ์ํด 7๊ฐ์ ์์๋ฅผ ์ ๊ณตํ๋ค.
- ํ์
// InputEvent ์ฃผ์ ๋ฉ์๋
boolean isAltDown() // Alt ํค๊ฐ ์ฌ์ฉ๋์์ผ๋ฉด true ์๋๊ฒฝ์ฐ false๋ฅผ ๋ฐํ
boolean isControlDown() // CTRL ํค๊ฐ ์ฌ์ฉ๋์์ผ๋ฉด true ์๋๊ฒฝ์ฐ false๋ฅผ ๋ฐํ
boolean isMetaDown() // META ํค๊ฐ ์ฌ์ฉ๋์์ผ๋ฉด true ์๋๊ฒฝ์ฐ false๋ฅผ ๋ฐํ
boolean isShiftDown() // SHIFT ํค๊ฐ ์ฌ์ฉ๋์์ผ๋ฉด true ์๋๊ฒฝ์ฐ false๋ฅผ ๋ฐํ
int getModifiers() // ์ด๋ฒคํธ ๋ฐ์ ์ ๊ฐ์ด ์ฌ์ฉ๋ ์์ ์ ํค๋ฅผ ๋ฐํ
KeyEvent()
- ํค๋ณด๋๋ฅผ ํตํ ํค ์ ๋ ฅ์ด ์ฌ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
- ๊ตฌ๋ถ์์๊ฐ ์กด์ฌํ๋ค.
// KEY_PRESSED - ํค๊ฐ ๋๋ ค์ก์ ๋
// KEY_RELEASED - ํค๊ฐ ๋์ด์ก์ ๋
// KEY_TYPED - ๋ฌธ์๊ฐ ์์ฑ๋์์ ๋
// char getKeyChar() - ์
๋ ฅ๋ ๋ฌธ์ ๊ฐ ๋ฐํ
KeyEvent(Conponent src, int type, long when, int modifiers, int code)
KeyEvent(Conponent src, int type, long when, int modifiers, int code, char ch)
MouseEvent()
- ๋ง์ฐ์ค๊ฐ ๋๋ฌ์ง๊ฑฐ๋ ์์ง์ผ ๋, ์ปค์๊ฐ ์ปดํฌ๋ํธ ์์ญ์ ๋ค์ด๊ฐ๊ฑฐ๋ ๋ฒ์ด๋๋ ๋ฑ์ ์ํฉ์ ๋ฐ์ํ๋ ์ด๋ฒคํธ
- KeyEvent()์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ตฌ๋ถ์์๊ฐ ์กด์ฌํ๋ค.
- ํ์
// MOUSE_CLICKED - ๋ง์ฐ์ค ํด๋ฆญ
// MOUSE_DRAGGED - ๋ง์ฐ์ค ๋๋๊ทธ
// MOUSE_ENTERED - ๋ง์ฐ์ค๊ฐ ์ปดํฌ๋ํธ ์์ญ์ ์ง์
// MOUSE_EXITED - ๋ง์ฐ์ค๊ฐ ์ปดํฌ๋ํธ ์์ญ์์ ๋์์ ๋
// MOUSE_MOVED - ๋ง์ฐ์ค๊ฐ ์ด๋ํ ๋
// MOUSE_PRESSED - ๋ง์ฐ์ค๊ฐ ๋๋ฌ์ก์ ๋
// MOUSE_RELEASED - ๋ง์ฐ์ค๊ฐ ๋์ด์ก์ ๋
MouseEvent(Component src, int type, long when, int modifiers, int x, int y, int clicks, bolean triggersPopup)
์ด ๋ฐ์๋ ๋ง์ ์ด๋ฒคํธ์ ์ข ๋ฅ๊ฐ ์กด์ฌํ๋ค.
์ด๋ฒคํธ |
์ค๋ช |
ActionEvent |
๋ฒํผ, ๋ฆฌ์คํธ, ๋ฉ๋ด ๋ฑ์ ์ปดํฌ๋ํธ๊ฐ ๋๋ฆฌ๊ฑฐ๋ ์ ํ์ด ๋์์ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ |
AdjustmentEvent |
์คํฌ๋กค๋ฐ์ ๊ฐ์ ์กฐ์ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ์์ ์กฐ์ ์ด ์ผ์ด๋๋ฉด ๋ฐ์ํ๋ ์ด๋ฒคํธ |
ComponentEvent |
์ปดํฌ๋ํธ์ ๋ชจ์ต์ด๋ ์ด๋, ํฌ๊ธฐ๊ฐ ๋ณํ๋ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ |
ItemEvent |
๋ฆฌ์คํธ์ ๊ฐ์ ์ ํํญ๋ชฉ์ด ์๋ ์ปดํฌ๋ํธ์์ ์ ํํญ๋ชฉ์ด ์ ํ๋ ๋ ๋ฐ์๋๋ ์ด๋ฒคํธ |
TextEvent |
ํ ์คํธ ์ปดํฌ๋ํธ์์ ๊ฐ์ด ์ ๋ ฅ๋ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ |
ContainerEvent |
์ปจํ ์ด๋์ ์ปดํฌ๋ํธ๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ์ ๊ฑฐ๋ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ |
FocusEvent |
์ปดํฌ๋ํธ์ ์ด์ (Focus)์ด ๋ค์ด ์ฌ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ |
PaintEvent |
์ปดํฌ๋ํธ๊ฐ ๊ทธ๋ ค์ ธ์ผํ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ |
WindowEvent |
์๋์ฐ๊ฐ ํ์ฑํ๋๊ฑฐ๋ ๋นํ์ฑํ ๋ ๋, ์ต์, ์ต๋, ์ข ๋ฃ ๋ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ |
KeyEvent |
ํค๋ณด๋๋ก๋ถํฐ ์ ๋ ฅ์ด ๋ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ |
MouseEvent |
๋ง์ฐ์ค๊ฐ ๋๋ ค์ง๊ฑฐ๋ ์์ง์ผ ๋, ๋ง์ฐ์ค ์ปค์๊ฐ ์ปดํฌ๋ํธ ์์ญ์ ๋ค์ด๊ฐ๊ฑฐ๋ ๋ฒ์ด๋ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ |
*Reference
https://coding-factory.tistory.com/262
'๐ฌ Language > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
StringTokenizer (0) | 2020.01.18 |
---|---|
extends์ implements (0) | 2020.01.17 |
GUI ํํํ๊ธฐ (0) | 2020.01.09 |
split ํจ์์ ์ ๊ทํํ์ (0) | 2020.01.08 |
args[0]์ ์ด๊ธฐ๊ฐ? (0) | 2020.01.08 |