-bottom

mmpp.microedition.lcdui
Class TextFieldX

java.lang.Object
  |
  +--mmpp.microedition.lcdui.TextFieldX

public class TextFieldX
extends java.lang.Object

TextFieldX는 편집 가능한 text component로 Canvas에 위치 할 수 있다. 초기값으로는 특정 문자열을 가질 수 있다.

TextFieldX는 많은 부분을 TextField에서 빌려왔으며 기본 사용법은 거의 비슷하다.

TextFieldX는 가질 수 있는 문자열의 최대 길이를 가지고 있으며 이 제한은 유저가 입력을 하거나 TextFieldX의 내용을 바꾸는 함수를 호출 할 때 등 언제나 적용된다. 이 최대 길이는 한 순간에 화면에 보여지는 문자열의 크기와는 상관이 없다. 한 순간에 화면에 보여지는 문자열의 크기는 row와 TextFieldX의 width에 의해서 결정된다.

구현상 문자열의 최대 크기에는 제한이 있을 수 있으며, 최대 크기는 application이 요청한 것보다 작을 수 있다. 실제 적용된 최대 크기는 getMaxSize()로 확인할 수 있다. 잘 짜여진 application은 이 값을 비교하여 요청한 값과 다른 경우를 처리해야 한다.

Input Constraints

TextFieldX은 input constraintsTextBox와 공유한다. 다른 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

IM_NONE

public static final int IM_NONE
입력 상태가 지정되지 않음을 뜻하며 어떤 입력도 불가능하다.

IM_ROMAN_CAPS

public static final int IM_ROMAN_CAPS
영문 대문자 입력 모드

IM_ROMAN_SMALL

public static final int IM_ROMAN_SMALL
영문 소문자 입력 모드

IM_NUMERIC

public static final int IM_NUMERIC
숫자 입력 모드

IM_SYMBOL

public static final int IM_SYMBOL
심볼 입력 모드

IM_KOREAN

public static final int IM_KOREAN
한글 입력 모드

eT

protected mmpp.microedition.lcdui.ET eT
Constructor Detail

TextFieldX

public TextFieldX(java.lang.String label,
                  java.lang.String text,
                  int maxSize,
                  int constraints)
새로운 TextFieldX를 label, 초기값, 입력가능 글자수 그리고 constraints로 생성한다.
Parameters:
label - TextFieldX의 label
text - 초기 값, null이면 빈 공란으로 표시된다.
maxSize - 최대 입력가능 글자 수
constraints - see input constraints
Throws:
java.lang.IllegalArgumentException - maxSize가 0보다 같거나 작을 때
java.lang.IllegalArgumentException - constraints가 유효한 값이 아닐 때
java.lang.IllegalArgumentException - text가 constraints에 맞지 않을 때
java.lang.IllegalArgumentException - text의 길이가 maxSize를 초과할 때
Method Detail

setOwner

public void setOwner(javax.microedition.lcdui.Canvas owner)
TextFieldX가 그려질 Canvas를 지정한다
Parameters:
owner - 이 TextFieldX를 소유하게 될 Canvas

getOwner

public javax.microedition.lcdui.Canvas getOwner()
TextFieldX가 그려지는 Canvas를 얻는다.
Returns:
owner TextFieldX를 소유한 Canvas

getWidth

public int getWidth()
TextFieldX의 폭 크기를 구한다.
Returns:
width TextFieldX 폭 크기

setWidth

public void setWidth(int width)
TextFieldX의 폭 값을 정한다.
Parameters:
width - TextFieldX의 폭
Throws:
java.lang.IllegalArgumentException - width가 0보다 같거나 작은 경우

getHeight

public int getHeight()
TextFieldX의 높이를 구한다.
Returns:
width TextFieldX의 너비

getMaxRow

public int getMaxRow()
TextFieldX에서 보여주는 행 수를 구한다.
Returns:
행 수

setMaxRow

public void setMaxRow(int maxRow)
TextFieldX에서 보여주는 행 수를 정한다.
Parameters:
maxRow - TextFieldX에서 보여줄 행 수
Throws:
java.lang.IllegalArgumentException - maxRow가 0보다 같거나 작은 경우

getFont

public javax.microedition.lcdui.Font getFont()
TextFieldX에서 사용하는 font를 구한다.
Returns:
TextFieldX에서 사용하는 Font

setFont

public void setFont(javax.microedition.lcdui.Font newFont)
TextFieldX에서 사용할 font를 정한다.
Parameters:
font - TextFieldX에서 사용할 font

nextInputMode

public int nextInputMode()
TextFieldX의 입력 모드를 다음 모드로 바꾼다. Focus가 없으면 아무일도 일어나지 않는다.
Returns:
Focus되어 있으면 바뀐 후의 모드, 아니면 항상 TextFieldX.IM_NONE을 return

getInputMode

public int getInputMode()
TextFieldX의 현재 입력 모드를 얻어온다.
Returns:
Focus되어 있을 때에는 현재 입력 모드,아니면 항상 TextFieldX.IM_NONE를 return

getString

public java.lang.String getString()
현재 TextFieldX의 내용을 구한다.
Returns:
TextFieldX의 내용인 String

setString

public void setString(java.lang.String text)
TextFieldX의 내용을 새로운 내용으로 바꾼다.
Parameters:
text - TextFieldX에 새로이 들어갈 내용
Throws:
java.lang.IllegalArgumentException - text가 현재 input constraints에 맞지 않을 경우
java.lang.IllegalArgumentException - text의 길이가 TextFieldX가 자길 수 있는 길이보다 큰 경우

getChars

public int getChars(char[] data)
TextFieldX의 내용을 character array의 시작부터로 카피한다.
Parameters:
data - 내용이 카피될 character array
Returns:
카피된 chracter의 수
Throws:
ArrayIndexOutOfBoundsException - data의 길이가 TextFiedlX의 내용보다 짧은경우

setChars

public void setChars(char[] data,
                     int offset,
                     int length)
character array에 있는 값으로 TextFieldX의 내용을 새로이 정한다. 새로운 내용은 data array에서 offset위치 부터 length의 수 만큼의 내용으로 된다. 만일 data array가 null이면 TextFieldX의 내용은 빈 것이 된다. 이 때에는 다른 parameter는 무시된다.
Parameters:
data - 새로운 내용을 읽어올 character array
offset - 새로운 내용의 array에서의 시작 위치
length - 새로운 내용의 글자 수
Throws:
ArrayIndexOutOfBoundsException - 만일 offset과 length가 data array의 범위를 벗어나는 경우
java.lang.IllegalArgumentException - 만일 새로운 내용인 현재 input constraints에 맞지 않는 경우
java.lang.IllegalArgumentException - 새로운 내용의 길이가 TextFieldX이 가질 수 있는 최대 길이보다 긴 경우

insert

public void insert(java.lang.String src,
                   int position)

문자열을 TextFieldX의 내용에 삽입한다. 문자열은 position 로 지정된 위치 바로 앞에 삽입된다. position값은 0이면 첫 글자를 뜻한다. 만약 position이 0보다 같거나 작으면, 현재 내용의 가장 앞에 문자열이 삽입된다. 만일 position가 현재 내용의 길이보다 같거나 크다면, 현재 내용의 가장 뒤에 붙어서 삽입될 것이다.

내용의 크기는 삽입된 문자들의 숫자만큼 증가할 것이다. 그리고 그 결과 생성된 내용은 TextFieldX의 최대 용량보다 크면 안된다.

만일 application이 글자를 입력하는 것을 표현하고 싶다면, 현재 입력 커서의 위치를 getCaretPosition()를 통해서 얻을 수 있다. 예를 들면 text.insert(s, text.getCaretPosition()) 와 같은 코드는 문자열을 커서 위치에 삽입하게 된다.

Parameters:
src - 삽입될 String
position - 문자열이 삽입될 위치
Throws:
java.lang.IllegalArgumentException - 새로운 내용이 현재의 input constraints과 맞지 않을 경우
java.lang.IllegalArgumentException - 문자열이 삽입된 결과 TextFieldX가 가질 수 있는 최대 길이보다 긴 경우

insert

public void insert(char[] data,
               DD>

臾몄ž