Class Display
package org.kwis.msp.lcdui
java.lang.Object | +--org.kwis.msp.lcdui.Displayextends Object:
화면의 출력 관련 함수와 정보를 가지는 클래스입니다.
기본적으로 화면에 무언가를 출력하기 위해서 Display를 구한후에
Card를 생성하고,
pushCard함수를 호출하여 Display에
Card를 등록 시킵니다.
이후에 Card의 paint함수에서
그려지는 내용이 화면에 출력됩니다.
한 화면(LCD)은 Display에 대응합니다.
응용프로그램은 Display을 여러개 가질 수 있습니다.
이는 휴대폰중에 듀얼 LCD가 있는 모델을 지원하기 위하여
JLet상에서 두 화면을 사용할 수도록
하기 위함입니다.
Display를 얻어 오기 위해서는 getDisplay(java.lang.String)함수를 사용하여
가져옵니다.
한 화면을 여러개의 Card로 구성됩니다.
Card는 맨 아래 Card부터 시작해서
하나씩 그려지며, 맨 마지막에는 스택 맨 상위에 있는 Card가
그려집니다.
이런 메커니즘으로 대화 상자등을 처리할 수 있도록 하였습니다.
입력은 반대 방향으로 맨 상위에 있는 Card에게
전달되며 이 Card는 자신이
이벤트를 처리했는지 않했는지 여부를 돌려줍니다. 만일 처리했다면, 더이상
이벤트는 하위 Card에게 전달되지 않지만, 처리하지
않았다면 하위 Card에게
전달되며, 다시한번 처리여부를 확인하게 되어 맨 아래 Card까지
전달 될
수도 있습니다. 실제로 InputMethodHandler에 의해서
생성되는 창이나 기타 대화 상자등은
이런 식으로 처리가 됩니다.
듀얼 LCD에 대응하는 Display에서는 사용자
입력 이벤트(키 이벤트, 포인터 이벤트)가 발생하지
않음을 유의하십시오.
See Also:
Card
메서드 요약
섹션 제목: “메서드 요약”void addJletEventListener ( JletEventListener qel)— JletEvent 를 받을 리스너를 등록합니다. key, repaint, point외에 발생하는 모든 이벤트가 발생시에 호출되는 리스너를 등록합니다.void callSerially ( Runnable r)— 이벤트가 다 처리되고 난 후에 특정 Runnable 의 함수 run 을 호출하도록 합니다.void callSerially ( Runnable r, int timeout)— 이벤트가 다 처리되고 난 후에 특정 Runnable 의 함수 run 을 호출하도록 합니다.int countCard ()— Display에 등록된 카드의 갯수를 가져옵니다.void flush ()— 내부의 버퍼의 내용을 화면에 출력하도록 합니다.int getBitsPerPixel ()— 화면의 한 픽셀당 차지하는 비트(bit)를 돌려줍니다.static Display getDefaultDisplay ()— 기본 Display 를 얻어 옵니다.static Display getDisplay ( String str)— 문자열에 대응하는 Display 를 얻어 옵니다.Card getDockedCard ()— 붙여진 카드를 돌려줍니다.static int getGameAction (int key)— 지정한 키 코드에 대응하는 게임키를 구합니다.int getHeight ()— 화면의 높이를 돌려줍니다.static int getKeyCode (int gameKey)— 게임키에 대응하는 키 코드값을 얻어 옵니다. gameKey는 EventQueue.UP, EventQueue.DOWN, EventQueue.LEFT, EventQueue.RIGHT, EventQueue.FIRE, EventQueue.GAME_A, EventQueue.GAME_B, EventQueue.GAME_C, EventQueue.GAME_D,java 중 하나가 되며, 돌려주는 값은 실제적인 키 코드 값이 됩니다.static String getKeyName (int key)— 키 코드에 대응하는 키 이름의 문자열을 돌려 받습니다.int getWidth ()— 화면의 폭을 돌려줍니다.void grabKey (int key, JletEventListener qel)— 특정 키를 함수를 부르는 응용 프로그램에서 소유하게 합니다.boolean hasPointerEvents ()— 시스템에 포인터 디바이스관련 이벤트가 있는지 여부를 돌려줍니다.boolean hasPointerMotionEvents ()— 시스템에 포인터 움직임 디바이스 이벤트가 있는지 여부를 돌려줍니다.boolean hasRepeatEvents ()— 키 반복 이벤트가 발생할 수 있는지 없는지 여부를 돌려줍니다.boolean isColor ()— 화면이 컬러 색상을 지원하는지 여부를 돌려줍니다.boolean isDoubleBuffered ()— 화면이 더블 버퍼링(double buffering)인지 여부를 돌려줍니다.int numColors ()— 화면에서 사용할 수 있는 색상의 갯수를 돌려줍니다.Card popCard ()— 카드를 꺼내옵니다.void pushCard ( Card c)— 카드를 화면에 보일 수 있도록 합니다.void removeAllCards ()— 모든 카드를 제거합니다.boolean removeCard ( Card c)— 특정 카드를 제거합니다.void removeJletEventListener ( JletEventListener qel)— JletEvent 를 받을 리스너를 삭제합니다.void setDockedCard ( Card cd, int where)void setJletEventListener ( JletEventListener qel)void ungrabKey (int key)— grabKey 로 인한 이벤트 소유를 이전 상태로 돌립니다.static void where ()
메서드 상세
섹션 제목: “메서드 상세”getDefaultDisplay
섹션 제목: “getDefaultDisplay”public static Display getDefaultDisplay()Returns:
- 기본 display
Throws:
NullPointerException- ql이 null인 경우
getDisplay
섹션 제목: “getDisplay”public static final Display getDisplay(String str)Parameters:
str- display를 가르키는 문자열
Returns:
- display 객체
Throws:
NullPointerException- ql이 null인 경우
pushCard
섹션 제목: “pushCard”public final void pushCard(Card c)Parameters:
c- 화면에 맨 상위에 보여질 카드.
Throws:
NullPointerException- c가 null인 경우
popCard
섹션 제목: “popCard”public final Card popCard()Returns:
- 꺼내온 카드
removeCard
섹션 제목: “removeCard”public final boolean removeCard(Card c)Parameters:
c- 삭제할 카드
Returns:
- 성공적으로 스택에 카드를 제거했는지 여부
removeAllCards
섹션 제목: “removeAllCards”public void removeAllCards()- 모든 카드를 제거합니다.
현재 수행중인 Jlet이 생성한
모든 카드를 Display
에서 제거합니다.
각 카드의 showNotify()가 각각 불리며,
더 이상 카드는 화면에 나타나지 않습니다.
countCard
섹션 제목: “countCard”public final int countCard()Returns:
- 카드 스택에 있는 카드의 갯수
callSerially
섹션 제목: “callSerially”public final void callSerially(Runnable r)Parameters:
r- 수행할 runnable 객체
Throws:
NullPointerException-r이null인 경우
callSerially
섹션 제목: “callSerially”public final void callSerially(Runnable r, int timeout)Parameters:
timeout- Runnable이 불려질 시간(밀리 세컨드 단위)
Throws:
IllegalArgumentException-timeout이 음수인 경우
getDockedCard
섹션 제목: “getDockedCard”public Card getDockedCard()- 붙여진 카드를 돌려줍니다.
setDockedCard
섹션 제목: “setDockedCard”public void setDockedCard(Card cd, int where)isColor
섹션 제목: “isColor”public final boolean isColor()Returns:
- 컬러 지원 여부
numColors
섹션 제목: “numColors”public final int numColors()Returns:
- 색상 갯수
hasPointerEvents
섹션 제목: “hasPointerEvents”public final boolean hasPointerEvents()Returns:
- 포인터 이벤트 여부
hasPointerMotionEvents
섹션 제목: “hasPointerMotionEvents”public final boolean hasPointerMotionEvents()Returns:
- 포인터 움직임 이벤트 여부
hasRepeatEvents
섹션 제목: “hasRepeatEvents”public final boolean hasRepeatEvents()Returns:
- 키 반복 이벤트 여부
getWidth
섹션 제목: “getWidth”public final int getWidth()Returns:
- 화면의 폭
getHeight
섹션 제목: “getHeight”public final int getHeight()Returns:
- 화면의 높이
isDoubleBuffered
섹션 제목: “isDoubleBuffered”public boolean isDoubleBuffered()Returns:
- double buffer 여부
getKeyCode
섹션 제목: “getKeyCode”public static int getKeyCode(int gameKey)- 게임키에 대응하는 키 코드값을 얻어 옵니다. gameKey는
EventQueue.UP, EventQueue.DOWN, EventQueue.LEFT, EventQueu