ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java Event(이벤트)
    Java/Java 기초 2012. 8. 25. 01:11

     

    이번엔 GUI의 결정체인 이벤트처리에 대해 알아보겠습니다. 가능한 대로 자세히 설명하겠습니다.

     

    이벤트란?

    사용자의 마우스, 키보드 등의 입력장치로부터 발생하는 모든 사건을 의미합니다. 버튼, 스크롤바, 텍스트 필드 등의 컴포넌트로부터 발생하는 사건을 상황에 맞게 처리할 수 있게 할 수 있습니다. 자바에서는 이벤트와 연관된 클래스들을 java.awt.event 패키지로 제공하고 있습니다. 대부분은 마우스 또는 키보드에서 발생되는 사건을 처리합니다.

    EventObject 클래스의 주요 메서드

    Object getSource() 

     이벤트를 발생시킨 객체를 반환합니다.
     String toString()

     이벤트 이름을 문자열로 반환합니다.

     

     

    ActionEvent 클래스

    Action 이벤트는 버튼이 눌려졌거나, 리스트 항목이 선택 되었을 때 발생합니다. 가장 많이 사용되는 클래스입니다.

    형식 :

    ActionEvent(Object src, int type, String cmd)

    ActionEvent(Object src, int type, String cmd, int modifiers)

    src : 이벤트를 발생한 객체

    type : 이벤트 타입

    이 클래스는 이벤트가 발생될 때 같이 사용된 modifier 키를 구분하기 위해 4개의 상수를 제공합니다. modifier키는 마우스를 누를 때 같이 사용된 특수키를 의미합니다. 즉, 컨트롤 키가 눌려진 상태에서 버튼이 눌려지거나, 메뉴가 선택될 때 수정자 키 값이 상수로 전달됩니다. ALT_MASK, CTRL_MASK, META_MASK, SHIFT_MASK 가 있습니다.

     

    ActionEvent 클래스의 주요 메서드

     String getActionCommand()

    ActionEvent를 발생시킨 객체의 이름을 반환합니다. 
     int getModifiers()  이벤트 발생 시 같이 사용된 수정자 키를 나타내는 상숫값을 반환합니다.

     

    InputEvent 클래스

    InputEvent 클래스는 추상 클래스로서 Component 클래스로부터 상속된 클래스입니다. 추상 클래스이기 때문에 이 클래스 안에선 이벤트 객체를 생성할 수 없습니다. 이 클래스는 이벤트가 발생할 때 같이 사용된 수정키를 구분하기 위하여 7개의 상수를 제공합니다. 각각 ALT_MASK, CTRL_MASK, META_MASK, SHIFT_MASK, BUTTON1_MASK, BUTTON2_MASK, BUTTON3_MASK 이 있습니다. 버튼은 각각 마우스입니다. 

    InputEvent 클래스의 주요 메서드

     boolean isAltDown()

    Alt 키가 사용되었으면 true 아닐경우 false를 반환합니다.

     boolean isControlDown()

    CTRL 키가 사용되었으면 true 아닐경우 false를 반환합니다.

     boolean isMetaDown()

    META 키가 사용되었으면 true 아닐경우 false를 반환합니다.

     boolean isShiftDown()

    SHIFT 키가 사용되었으면 true 아닐경우 false를 반환합니다.

     int getModifiers()

     이벤트 발생 시 같이 사용된 수정자 키를 반환합니다.

     

    ItemEvent 클래스

    ItemEvent 클래스는 체크박스나 리스트 항목이 선택되었을 때나, 메뉴의 한 항목이 선택되었거나 선택된 항목이 해제될 때 발생합니다.

    형식 :

    ItemEvent(ItemSelectable src, int type, Object entry, int state)

    src는 이벤트가 발생한 컴포넌트, type은 이벤트의 유형, entry는 이벤트 발생 시 전달하고자 하는 특수한 item 객체, state는 item의 현재 상태를 의미합니다. 그리고 이벤트의 유형을 구분하기 위한 두 개의 상수 (SELECTED, DESELECTED, 각각 한 항목이 선택되었을 때, 선택된 항목이 해제되었을 때)를 제공합니다.

     

    WindowEvent 클래스

    WindowEvent는 윈도우가 활성화되거나 아이콘화될 때, 닫혀질 때 등에 발생합니다.

    형식 :

    WindowEvent(Window src, int type)

    윈도의 유형을 구분하기위해 다음과 같은 상수를 제공합니다.

    WINDOW_ACTIVATED - 윈도우가 활성화 될 때

    WINDOW_CLOSED - 윈도우가 닫힐 때

    WINDOW_CLOSING - 사용자의 요청으로 윈도우가 닫힐 때

    WINDOW_ICONFIED - 윈도우가 아이콘화 될 때

    WINDOW_OPENED - 윈도우가 생성될 때

    Window getWindow() - 이벤트를 발생시킨 Window 객체를 반환합니다.

     

    KeyEvent 클래스

    키보드로부터 입력이 일어날 때 발생합니다.

    형식 :

    KeyEvent(Conponent src, int type, long when, int modifiers, int code)

    KeyEvent(Conponent src, int type, long when, int modifiers, int code, char ch)

    code는 함수키와 같은 특수한 키를 의미하고 ch는 입력된 문자를 의미합니다.

    구분하기 위한 상수

    KEY_PRESSED - 키가 눌려졌을 때

    KEY_RELEASED - 키가 띄어졌을 때

    KEY_TYPED - 문자가 생성되었을 때

    char getKeyChar() - 입력된 문자 값을 반환합니다.

     

    MouseEvent 클래스

    이 클래스는 엄청 다양한 형태로 발생합니다. 상상이 가시죠?

    형식 :

    MouseEvent(Component src, int type, long when, int modifiers, int x, int y, int clicks, bolean triggersPopup)

    x, y는 각각 마우스에서 일어난 이벤트 좌표를 의미하고 clicks는 클릭 횟수입니다. triggersPopup 값이 참이면 이벤트가 팝업메뉴에서 일어났음을 의미합니다.

    구분상수

    MOUSE_CLICKED - 마우스 클릭

    MOUSE_DRAGGED - 마우스 드래그

    MOUSE_ENTERED - 마우스가 컴포넌트 영역에 진입

    MOUSE_EXITED - 마우스가 컴포넌트 영역에서 나왔을 때

    MOUSE_MOVED - 마우스가 이동할 때

    MOUSE_PRESSED - 마우스가 눌러졌을 때

    MOUSE_RELEASED - 마우스가 띄어졌을 때

     

    int getX() 

     이벤트가 발생한 위치의 x값을 반환합니다.

    int getY()

     이벤트가 발생한 위치의 y값을 반환합니다.

    Point getPoint()

     이벤트가 발생한 위치를 Point 객체로 반환합니다. 이 포인트 클래스는 java.awt 패키지에 제공되는 클래스로서, 이 클래스의 객체는 이벤트가 발생한 위치의 x, y 값을 가집니다.

    void translatePoint(int x, int y)

     이벤트가 발생한 위치를 x, y값으로 반환합니다.

    int getClickCount()

     마우스가 눌려진 횟수를 반환합니다.

    이렇게 많은 클래스와 생성자들이 있습니다. 벌써부터 어지러우시면 안돼요~ 다음시간엔 본격적으로 Event를 다뤄보면서 Event 처리에 관해 예제도 함께 소개해 드리겠습니다.

     

    'Java > Java 기초' 카테고리의 다른 글

    Java 이벤트 처리 Keyboard  (0) 2012.08.26
    Java 이벤트 처리  (0) 2012.08.26
    Java Graphics  (0) 2012.08.25
    Java JPanel  (0) 2012.08.24
    Java GridLayout  (0) 2012.08.24

    댓글

Designed by Tistory.