org.kwis.msp.lcdui
Class EventQueue

java.lang.Object
  |
  +--org.kwis.msp.lcdui.EventQueue

public class EventQueue
extends Object

시스템에서 발생하는 이벤트를 관리하는 큐 클래스입니다. 응용 프로그램(Jlet) 하나에는 이벤트를 관리하는 EventQueue 객체가 하나 존재하게 됩니다. 응용 프로그램에 발생한 모든 이벤트는 이 객체에 일단 저장하고. 응용 프로그램은 발생한 이벤트를 하나씩 가져와서 적절히 처리하면, 응용 프로그램이 동작합니다. Jlet안에는 이벤트를 가져와서 처리하는 쓰레드가 내부에 존재 합니다.

이벤트를 가져오거나 새로운 이벤트를 넣을 때에는 EVENT_SIZE가 지정한 갯수 이상의 정수 어레이를 사용합니다. 이 어레이에 들어가는 내용은 이벤트 타입에 따라서 다릅니다.

각 이벤트 타입에 따른 저장되는 내용은 다음과 같습니다.
event[0] event[1] event[2] event[3]
KEY_EVENT KEY_PRESSED | KEY_RELEASED | KEY_REPEATED | KEY_TYPED 키 값(ITU키인 경우에는 ascii값이 아니면 음수) 0
POINTER_EVENT POINTER_PRESSED | POINTER_RELEASED | POINTER_DRAGGED 포인터의 화면상 x축 값 포인터의 화면상 y축 값
TIMER_EVENT 타이머 값

Main에서 getNextEventdispatchEvent를 무한히 수행하도록 되어 있으며, 그 수행 코드는 다음과 같습니다.

int event[] = new int[EventQueue.EVENT_SIZE];

while(true){
  eq.getNextEvent(event);
  eq.dispatchEvent(event);
}

키 코드는 시스템에 따라서 다릅니다. 그러나, ITU-키인 경우에는 '0' 에서 부터 '9', '*', '#'가 들어오며, 그외에 아스키 코드값에 대응되는 키가 들어오게 됩니다. 파워키나 방향키와 같은 제어키는 음수값으로 들어 오며, 그 값은 플랫폼마다 다를 수 있습니다. 플랫폼 마다 다른 제어키를 처리하기 위헤서 getGameActiongetKeyCode함수가 존재 합니다. 특정 키가 들어 왔을때 어떤 제어키인지를 알기 위해서 getGameAction함수를 사용합니다. 물론 시스템에 따라서 숫자키가 제어키로 사용할 수도 있습니다. 현재 getGameAction에 반대되는 함수인 getKeyCode함수가 존재하게 됩니다.


Field Summary
static int ANN_EVENT
          단말기 indicator Notify 이벤트 상수. 8로 지정되어 있습니다.
static int ANNUNCIATOR_CHANGE_EVENT
          상위 지시자가 변경된 이벤트 상수. 103으로 지정되어 있습니다.
static int APP_ACTIVE
          현재 Active된 프로그램을 자기 자신으로 변경합니다.
static int APP_DESTROY
          응용프로그램 종료 이벤트; APP_EVENT의 서브타입입니다. 3로 지정되어 있습니다.
static int APP_EVENT
          응용 프로그램 이벤트 상수. 100으로 지정되어 있습니다.
static int APP_RESUME
          응용프로그램 지속 이벤트; APP_EVENT의 서브타입입니다. 2로 지정되어 있습니다.
static int APP_STOP
          응용프로그램 정지 이벤트; APP_EVENT의 서브타입입니다. 1로 지정되어 있습니다.
static int BATT_EVENT
           
static int CALL_EVENT
          단말기 Call Notify 이벤트 상수. 7로 지정되어 있습니다.
static int CALL_SERIALLY_EVENT
          내부 call serially 이벤트 상수.
static int CHILDSTART_EVENT
          하위 프로그램 시작 이벤트 상수. 101로 지정되어 있습니다.
static int CHILDSTOP_EVENT
          하위 프로그램 종료 이벤트 상수. 102로 지정되어 있습니다.
static int CLEAR
          CLEAR 게임 키를 지정하는 상수. 99로 지정되어 있습니다.
static int DOWN
          DOWN 게임 키를 지정하는 상수. 6로 지정되어 있습니다.
static int EVENT_SIZE
          이벤트 하나가 저장되는 단위크기. 4로 지정되어 있으며, getNextEvent함수 호출시에 적어도 이 크기 이상의 정수 어레이를 넘겨야만 합니다.
static int FIRE
          FIRE 게임 키를 지정하는 상수. 8로 지정되어 있습니다.
static int GAME_A
          GAME_A 게임 키를 지정하는 상수. 9로 지정되어 있습니다.
static int GAME_B
          GAME_B 게임 키를 지정하는 상수. 10로 지정되어 있습니다.
static int GAME_C
          GAME_C 게임 키를 지정하는 상수. 11로 지정되어 있습니다.
static int GAME_D
          GAME_D 게임 키를 지정하는 상수. 12로 지정되어 있습니다.
static int KEY_EAR_PIECE
           
static int KEY_EVENT
          키 이벤트 상수. 1로 지정되어 있습니다.
static int KEY_NUM0
          ITU-T '0' 키를 지정하는 상수. 48('0')로 지정되어 있습니다.
static int KEY_NUM1
          ITU-T '1' 키를 지정하는 상수. 49('1')로 지정되어 있습니다.
static int KEY_NUM2
          ITU-T '2' 키를 지정하는 상수. 50('2')으로 지정되어 있습니다.
static int KEY_NUM3
          ITU-T '3' 키를 지정하는 상수. 51('3')로 지정되어 있습니다.
static int KEY_NUM4
          ITU-T '4' 키를 지정하는 상수. 52('4')로 지정되어 있습니다.
static int KEY_NUM5
          ITU-T '5' 키를 지정하는 상수. 53('5')으로 지정되어 있습니다.
static int KEY_NUM6
          ITU-T '6' 키를 지정하는 상수. 54('6')로 지정되어 있습니다.
static int KEY_NUM7
          ITU-T '7' 키를 지정하는 상수. 55('7')로 지정되어 있습니다.
static int KEY_NUM8
          ITU-T '8' 키를 지정하는 상수. 56('8')으로 지정되어 있습니다.
static int KEY_NUM9
          ITU-T '9' 키를 지정하는 상수. 57('9')로 지정되어 있습니다.
static int KEY_POUND
          ITU-T '#' 키를 지정하는 상수. 35('#')로 지정되어 있습니다.
static int KEY_PRESSED
          키 누름 이벤트 타입 상수. 1로 지정되어 있습니다.
static int KEY_RELEASED
          키 떼임 이벤트 타입 상수. 2로 지정되어 있습니다.
static int KEY_REPEATED
          키 반복 이벤트 타입 상수. 3로 지정되어 있습니다.
static int KEY_SEND
           
static int KEY_STAR
          ITU-T '*' 키를 지정하는 상수. 42('*')로 지정되어 있습니다.
static int KEY_TYPED
          키 입력 이벤트 타입 상수. 4로 지정되어 있습니다.
static int LEFT
          LEFT 게임 키를 지정하는 상수. 2로 지정되어 있습니다.
static int MEDIA_EVENT
           
static int POINT_DRAGGED
          포인터 기기 드래그 이벤트 타입 상수. 5로 지정되어 있습니다.
static int POINT_PRESSED
          포인터 기기 누름 이벤트 타입 상수. 1로 지정되어 있습니다.
static int POINT_RELEASED
          포인터 기기 떼임 이벤트 타입 상수. 2로 지정되어 있습니다.
static int POINTER_EVENT
          포인터 이벤트 상수. 2로 지정되어 있습니다.
static int REPAINT_EVENT
           
static int RIGHT
          RIGHT 게임 키를 지정하는 상수. 5로 지정되어 있습니다.
static int RSSI_EVENT
           
static int SIDE_DOWN
          SIDE_DOWN 게임 키를 지정하는 상수. 97로 지정되어 있습니다.
static int SIDE_SEL
          SIDE_SEL 게임 키를 지정하는 상수. 98로 지정되어 있습니다.
static int SIDE_UP
          SIDE_UP 게임 키를 지정하는 상수. 96로 지정되어 있습니다.
static int SMS_EVENT
          SMS 이벤트 상수. 4로 지정되어 있습니다.
static int SOFT1
          SOFT1 게임 키를 지정하는 상수. 90으로 지정되어 있습니다.
static int SOFT2
          SOFT2 게임 키를 지정하는 상수. 91로 지정되어 있습니다.
static int SOFT3
          SOFT3 게임 키를 지정하는 상수. 92로 지정되어 있습니다.
static int SYSTEM_EVENT_END
           
static int SYSTEM_USER_EVENT
           
static int TIMER_EVENT
          타이머 이벤트 상수.
static int UP
          UP 게임 키를 지정하는 상수. 1로 지정되어 있습니다.
static int USER_EVENT
          사용자 이벤트 상수. 0x5000으로 지저오디어 있습니다.
  dispatchEvent(int[] event)
          
Method Summary
 void dispatchEvent(int[] event)
          이벤트를 처리해 줍니다.
 void getNextEvent(int[] event)
          발생한 새 이벤트를 가져옵니다.
static void hookEvent(int id, JletEventListener lst)
           
 boolean postEvent(int[] event)
          새로운 이벤트를 넣습니다.