|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--org.kwis.msp.lcdui.Card
화면에 출력될 수 있는 하나의 단위 클래스입니다.
이 클래스는 화면에 출력할 수 있는 단위가 되며 한 화면은 여러 카드가
쌓인 스택으로 구성됩니다.
스택에 싸인 여러 카드는 한 화면(Display)에 보여집니다.
한 카드는 여러 화면에 넣을 수는 없습니다.
카드는 화면상에서의 위치와 크기를 가지고 있습니다.
move나 resize함수를 이용하여
그 위치나 크기를 변경할 수 있습니다.
repaint라는 함수를 사용하게 되면, 카드의 일부분에
대해서 다시 이벤트
처리 쓰레드에 의해서 paint 함수가 불려서 화면에 내용이
나타나도록 되어 있습니다.
카드는 사용자 입력을 받을 수 있습니다.
keyNotify, pointerNotify,
등의 사용자에 의해서 불려지는 함수가 있으며,
모든 이벤트는 일단 스택 상위의 Card로 전달됩니다.
전달된 이벤트가
그 카드에서 처리를 한다면 위의 불려지는 함수는 true를 돌려주며,
그러면, 하위 Card는 이벤트를 받지 못합니다. 그러나 반대로
false
를 돌려주면, 하위 카드에게 이벤트를 전달하며, 같은 식으로 이벤트를
받은 하위 카드는 true, false를 돌려줍니다.
이 과정은 맨 하위
Card까지 반복이 됩니다.
카드가 입력받은 키는 기본적으로 ITU-Key '0'부터 '9' 그리고 '#', '*'
이 가능합니다. 이 키들은 휴대폰에 꼭 존재하는 키입니다. 그외의 키들은
게임키로 판별이 가능합니다. 지원되는 키들은 EventQueue.UP,
EventQueue.DOWN, EventQueue.LEFT,
EventQueue.RIGHT,
EventQueue.FIRE등이며, EventQueue.SOFT1,
EventQueue.SOFT2도 있지만,
이 경우에는 폰에서 지원하지 않는
경우가 있으므로 유의해서 사용하십시오.
게임 키로 판별할 경우에는 Display.getGameAction(int)와
Display.getKeyCode(int)라는 함수로
키 코드와 게임 키로의 서로의 변환이 가능합니다.
카드가 pushCard, popCard에 의해서 보여지거나,
보이지 않게되는 경우에 showNotify라는
함수가 불립니다.
좌표체계는 화면 좌측 상단이 원점이 되고, 밑으로 가면 y축의 값이 증가하고, 오른쪽으로 가면 x축의 값이 증가하도록 되어 있습니다.
| Field Summary | |
protected boolean |
bTrans
Card가 투명한지 아닌지 여부. |
protected int |
h
Card의 화면상의 높이. |
protected int |
w
Card의 화면상의 폭. |
protected int |
x
card의 화면상의 x축 좌표. |
protected int |
y
Card의 화면상의 y축 좌표. |
| Constructor Summary | |
Card()
화면 크기 만큼의 카드를 생성합니다. |
|
Card(boolean bTrans)
|
|
Card(Display d)
화면 크기의 카드를 생성합니다. |
|
Card(Display d,
int x,
int y,
int w,
int h)
지정한 display를 위해서 지정한 크기와 위치로 카드를 생성합니다. |
|
Card(Display d,
int x,
int y,
int w,
int h,
boolean bTrans)
|
|
Card(int x,
int y,
int w,
int h)
지정한 크기와 위치로 카드를 생성합니다. |
|
| Method Summary | |
Display |
getDisplay()
카드의 display를 돌려줍니다. |
int |
getHeight()
카드의 높이를 얻어 옵니다. |
int |
getWidth()
카드의 폭을 얻어 옵니다. |
int |
getX()
카드의 x축 위치를 얻어 옵니다. |
int |
getY()
카드의 y축 위치를 얻어 옵니다. |
boolean |
isShown()
Card가 화면에 보이는지 안 보이는지 여부를 돌려줍니다. |
protected boolean |
keyNotify(int type,
int key)
사용자 키 입력이 생성되면 불립니다. |
void |
move(int x,
int y)
카드의 화면상의 위치를 변경합니다. |
protected abstract void |
paint(Graphics g)
Card의 내용을 그려줍니다. |
protected boolean |
pointerNotify(int type,
int x,
int y)
사용자 포인팅 디바이스의 입력이 생성되면 불립니다. |
void |
repaint()
Card전체 영역을 다시 그려줍니다. |
void |
repaint(int x,
int y,
int w,
int h)
지정된 영역을 다시 그려줍니다. |
void |
resize(int w,
int h)
카드의 크기를 변경합니다. w, h 둘중 하나가 0보다 작거나 같은 경우에는 IllegalArgumentException 오류를 발생 시킵니다. |
void |
serviceRepaints()
repaint영역을 다시 그리고, 화면에 출력합니다. repaint할 영역을 강제적으로 그립니다. |
protected void |
showNotify(boolean bShow)
이 카드가 보이기 바로 직전이나, 카드가 화면에서 삭제되는 경우에 불립니다. |
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected int x
protected int y
protected int w
protected int h
protected boolean bTrans
| Constructor Detail |
public Card()
Display.getDefaultDisplay함수가
돌려주는 Display의 크기로 잡힙니다.public Card(boolean bTrans)
public Card(Display d)
d - 카드를 생성할 display
public Card(int x,
int y,
int w,
int h)
Display.getDefaultDisplay함수를 통해서
기본 Display를 얻어와서 그
Display를 위한 Card를 만듭니다.
이때에는 인수로 넘어오는 값으로 위치와 그 크기를
결정합니다.x - Card의 display상에서의 x축 좌표y - Card의 display상에서의 y축 좌표w - Card의 폭h - Card의 높이IllegalArgumentException - w나 h가 0 이하인 경우
public Card(Display d,
int x,
int y,
int w,
int h)
Display를 위한 Card를 만듭니다.
이때에는 인수로 넘어오는 값으로 위치와 그 크기를
결정합니다.d - 카드를 생성할 display.x - Card의 display상에서의 x축 좌표y - Card의 display상에서의 y축 좌표w - Card의 폭h - Card의 높이IllegalArgumentException - w나 h가 0 이하인 경우
public Card(Display d,
int x,
int y,
int w,
int h,
boolean bTrans)
| Method Detail |
public void move(int x,
int y)
x - Card의 display상에서의 x축 좌표y - Card의 display상에서의 y축 좌표
public void resize(int w,
int h)
w - 카드의 폭h - 카드의 높이IllegalArgumentException - w나 h가 0 이하인 경우public int getWidth()
public int getHeight()
public int getX()
public int getY()
protected void showNotify(boolean bShow)
bShow파라미터가
true가 되어서
호출되며, 카드가 화면에 사라지기 전에는
bShow가 false가 되어서 호출됩니다.
상속하는 클래스에서 이 함수내에 애니메이션이나 타이머를 등록하거나
삭제하는 기능을 넣으시면 됩니다.bShow - 보이는지 안보이는지 여부
protected boolean keyNotify(int type,
int key)
키를 누르거나 뗄때에는 param1이 키 코드 값이 되고,
type에는
KEY_PRESSED나 KEY_RELEASED등과 같은
내부 서브 이벤트 타입값이 넘어 옵니다.
이 함수는 리턴 값으로 false를 넘기면
이벤트가 하위 카드로 전달됩니다.
만일 true를 넘기면 이벤트는 더 이상 하위
카드로 전달되지 않습니다.
type - KEY_PRESSED나 KEY_RELEASED,
KEY_TYPED, KEY_REPEATED중 하나key - keyCode값; 자세한 키코드는 EventQueue를 참조true,
그렇지 않으면 false
protected boolean pointerNotify(int type,
int x,
int y)
type은
POINT_PRESSED, POINT_RELEASED,
POINT_DRAGGED중 하나가 되며,
포인팅 디바이스의 x, y축값은 Card상에서의
좌표체계 값이 됩니다.
이 함수가 리턴 값으로 false를 넘기면
이벤트는 하위 카드로 전달됩니다.
만일 true를 넘기면 이벤트는
더이상 하위 카드로 전달되지 않습니다.
키 코드 값은 기본 ITU 키인 경우에는 대응하는 ASCII 코드 값이 되며,
그렇지 않은 경우에는 모두 음수값으로 넘어 옵니다.
제어 키인 경우에는 Display.getGameAction(int)으로
해당하는 키인지를 판별합니다.
type - POINT_PRESSED나 POINT_RELEASED,
POINT_DRAGGED중 하나key - 키 코드 값Card에 이벤트 전달하려면 true,
그렇지 않으면 falseprotected abstract void paint(Graphics g)
g는
Card에 맞도록 클리핑 되어 있습니다.
translate, setClip에 의해서
클리핑 영역을 변경하게 되면,
Card가 지정하는 이상의 부분을 칠하게 되어 있으므로
유의해서 사용해야 합니다.
그릴 내용은 Graphics객체를 사용하여 그리게 됩니다.g - 칠해질 graphics
public void repaint(int x,
int y,
int w,
int h)
x, y로 시작해서 폭
w, 높이 h만큼의 사각형의 내용을 다시
그려줍니다. 이 함수는 직접 paint함수를 부르지 않고,
다만 특정 시간 이후에 paint함수가 이벤트 처리 쓰레드에서
부릅니다.
paint함수를 부를때 넘어오는 Graphics 객체는
다시 칠할 영역으로 클리핑되어 넘어 옵니다.
클리핑 영역은 이 함수를 부르기전까지의 칠할 영역을 모두 합하므로
repaint한 영역 보다 클 수 있습니다.
다시 칠해지는 영역은 Card의 영역을 벗어 날 수 없습니다.
x - 특정영역을 가르키는 Card상에서의 x축 좌표y - 특정영역을 가르키는 Card상에서의 y축 좌표w - 특정영역을 넓이h - 특정영역을 폭public void repaint()
repaint(0, 0, getWidth(), getHeight())을
부르는것과 마찬가지 효과입니다.public void serviceRepaints()
public boolean isShown()
Card가 Display에 pushCard함수로
등록되어야만 화면에 출력됩니다.public Display getDisplay()
public void repaint(int x,
int y,
int w,
int h)