|
-bottom | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--mmpp.microedition.lcdui.TextFieldX
TextFieldX는 편집 가능한 text component로 Canvas
에
위치 할 수 있다. 초기값으로는 특정 문자열을 가질 수 있다.
TextField
에서 빌려왔으며
기본 사용법은 거의 비슷하다.
TextFieldX는 가질 수 있는 문자열의 최대 길이를 가지고 있으며 이 제한은 유저가 입력을 하거나 TextFieldX의 내용을 바꾸는 함수를 호출 할 때 등 언제나 적용된다. 이 최대 길이는 한 순간에 화면에 보여지는 문자열의 크기와는 상관이 없다. 한 순간에 화면에 보여지는 문자열의 크기는 row와 TextFieldX의 width에 의해서 결정된다.
구현상 문자열의 최대 크기에는 제한이 있을 수 있으며, 최대 크기는
application이 요청한 것보다 작을 수 있다. 실제 적용된 최대 크기는
getMaxSize()
로 확인할 수 있다. 잘 짜여진 application은
이 값을 비교하여 요청한 값과 다른 경우를 처리해야 한다.
TextFieldX은 input constraints 를 TextBox
와
공유한다. 다른 constratins는 application이 유저의 입력을 여러 방법으로
제한할 수 있도록 한다. 그리고 TextFieldX는 application이 요청한 제한에 따라서
사용자의 입력을 제한해야 한다. 예를 들어 application이 TextFieldX에 NUMERIC제한을
두었다면 TextFieldX는 숫자만 입력이 가능하도록 하여야 한다.
Field Summary | |
protected mmpp.microedition.lcdui.ET |
eT
|
static int |
IM_KOREAN
한글 입력 모드 |
static int |
IM_NONE
입력 상태가 지정되지 않음을 뜻하며 어떤 입력도 불가능하다. |
static int |
IM_NUMERIC
숫자 입력 모드 |
static int |
IM_ROMAN_CAPS
영문 대문자 입력 모드 |
static int |
IM_ROMAN_SMALL
영문 소문자 입력 모드 |
static int |
IM_SYMBOL
심볼 입력 모드 |
Constructor Summary | |
TextFieldX(java.lang.String label,
java.lang.String text,
int maxSize,
int constraints)
새로운 TextFieldX를 label, 초기값, 입력가능 글자수 그리고 constraints로 생성한다. |
Method Summary | |
void |
delete(int offset,
int length)
TextFieldX에서 문자들을 지운다. |
int |
getCaretPosition()
현재 입력 위치를 구한다. |
int |
getChars(char[] data)
TextFieldX의 내용을 character array의 시작부터로 카피한다. |
int |
getConstraints()
현재 input constraints를 구한다. |
javax.microedition.lcdui.Font |
getFont()
TextFieldX에서 사용하는 font를 구한다. |
int |
getHeight()
TextFieldX의 높이를 구한다. |
int |
getInputMode()
TextFieldX의 현재 입력 모드를 얻어온다. |
int |
getMaxRow()
TextFieldX에서 보여주는 행 수를 구한다. |
int |
getMaxSize()
TextFieldX이 가질 수 있는 문자열의 최대 길이를 구한다. |
javax.microedition.lcdui.Canvas |
getOwner()
TextFieldX가 그려지는 Canvas를 얻는다. |
java.lang.String |
getString()
현재 TextFieldX의 내용을 구한다. |
int |
getWidth()
TextFieldX의 폭 크기를 구한다. |
boolean |
hasFocus()
TextFieldX가 focus를 가지고 있는가를 얻어낸다. |
void |
insert(char[] data,
int offset,
int length,
int position)
Array의 일부 문자열을 TextFieldX의 내용에 삽입한다. offset과 length가 data array에서 삽입될 문자열을 지정하게 된다. |
void |
insert(java.lang.String src,
int position)
문자열을 TextFieldX의 내용에 삽입한다. |
void |
keyPressed(int keyCode)
key가 눌렸을 때 불리운다. Focus가 안 되어 있으면 아무일도 하지 않는다. |
void |
keyReleased(int keyCode)
키가 놓여질 때 불리운다. |
void |
keyRepeated(int keyCode)
키가 지속적으로 눌렸을 때 불리운다. |
int |
nextInputMode()
TextFieldX의 입력 모드를 다음 모드로 바꾼다. |
void |
paint(javax.microedition.lcdui.Graphics g)
TextFieldX를 그린다. |
void |
setChars(char[] data,
int offset,
int length)
character array에 있는 값으로 TextFieldX의 내용을 새로이 정한다. |
void |
setConstraints(int constraints)
새로운 input constraints를 정한다. |
void |
setFocus(boolean newFocus)
TextFieldX의 focus를 정한다. |
void |
setFont(javax.microedition.lcdui.Font newFont)
TextFieldX에서 사용할 font를 정한다. |
void |
setMaxRow(int maxRow)
TextFieldX에서 보여주는 행 수를 정한다. |
int |
setMaxSize(int maxSize)
TextFieldX가 가질 수 있는 문자열의 최대 길이를 정한다. |
void |
setOwner(javax.microedition.lcdui.Canvas owner)
TextFieldX가 그려질 Canvas를 지정한다 |
void |
setString(java.lang.String text)
TextFieldX의 내용을 새로운 내용으로 바꾼다. |
void |
setWidth(int width)
TextFieldX의 폭 값을 정한다. |
int |
size()
현재 TextFieldX의 문자열의 길이를 구한다. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int IM_NONE
public static final int IM_ROMAN_CAPS
public static final int IM_ROMAN_SMALL
public static final int IM_NUMERIC
public static final int IM_SYMBOL
public static final int IM_KOREAN
protected mmpp.microedition.lcdui.ET eT
Constructor Detail |
public TextFieldX(java.lang.String label, java.lang.String text, int maxSize, int constraints)
label
- TextFieldX의 labeltext
- 초기 값, null이면 빈 공란으로 표시된다.maxSize
- 최대 입력가능 글자 수constraints
- see input constraintsjava.lang.IllegalArgumentException
- maxSize가 0보다 같거나 작을 때java.lang.IllegalArgumentException
- constraints가 유효한 값이 아닐 때java.lang.IllegalArgumentException
- text가 constraints에 맞지 않을 때java.lang.IllegalArgumentException
- text의 길이가 maxSize를 초과할 때Method Detail |
public void setOwner(javax.microedition.lcdui.Canvas owner)
owner
- 이 TextFieldX를 소유하게 될 Canvaspublic javax.microedition.lcdui.Canvas getOwner()
public int getWidth()
public void setWidth(int width)
width
- TextFieldX의 폭java.lang.IllegalArgumentException
- width가 0보다 같거나 작은 경우public int getHeight()
public int getMaxRow()
public void setMaxRow(int maxRow)
maxRow
- TextFieldX에서 보여줄 행 수java.lang.IllegalArgumentException
- maxRow가 0보다 같거나 작은 경우public javax.microedition.lcdui.Font getFont()
public void setFont(javax.microedition.lcdui.Font newFont)
font
- TextFieldX에서 사용할 fontpublic int nextInputMode()
public int getInputMode()
public java.lang.String getString()
public void setString(java.lang.String text)
text
- TextFieldX에 새로이 들어갈 내용java.lang.IllegalArgumentException
- text가 현재
input constraints에 맞지 않을 경우java.lang.IllegalArgumentException
- text의 길이가 TextFieldX가 자길 수 있는
길이보다 큰 경우public int getChars(char[] data)
data
- 내용이 카피될 character arrayArrayIndexOutOfBoundsException
- data
의 길이가 TextFiedlX의
내용보다 짧은경우public void setChars(char[] data, int offset, int length)
data
array에서 offset
위치 부터
length
의 수 만큼의 내용으로 된다.
만일 data
array가 null이면 TextFieldX의 내용은 빈 것이 된다.
이 때에는 다른 parameter는 무시된다.data
- 새로운 내용을 읽어올 character arrayoffset
- 새로운 내용의 array에서의 시작 위치length
- 새로운 내용의 글자 수ArrayIndexOutOfBoundsException
- 만일 offset과 length가 data
array의 범위를 벗어나는 경우java.lang.IllegalArgumentException
- 만일 새로운 내용인 현재
input constraints에 맞지 않는 경우java.lang.IllegalArgumentException
- 새로운 내용의 길이가 TextFieldX이
가질 수 있는 최대 길이보다 긴 경우public void insert(java.lang.String src, int position)
문자열을 TextFieldX의 내용에 삽입한다. 문자열은 position
로 지정된 위치 바로 앞에 삽입된다. position값은 0이면 첫 글자를 뜻한다.
만약 position이 0보다 같거나 작으면, 현재 내용의 가장 앞에 문자열이
삽입된다. 만일 position
가 현재 내용의 길이보다 같거나
크다면, 현재 내용의 가장 뒤에 붙어서 삽입될 것이다.
내용의 크기는 삽입된 문자들의 숫자만큼 증가할 것이다. 그리고 그 결과 생성된 내용은 TextFieldX의 최대 용량보다 크면 안된다.
만일 application이 글자를 입력하는 것을 표현하고 싶다면, 현재 입력
커서의 위치를 getCaretPosition()
를
통해서 얻을 수 있다.
예를 들면
text.insert(s, text.getCaretPosition())
와 같은 코드는
문자열을 커서 위치에 삽입하게 된다.
src
- 삽입될 Stringposition
- 문자열이 삽입될 위치java.lang.IllegalArgumentException
- 새로운 내용이 현재의
input constraints과 맞지 않을 경우java.lang.IllegalArgumentException
- 문자열이 삽입된 결과 TextFieldX가
가질 수 있는 최대 길이보다 긴 경우public void insert(char[] data, DD>臾몄