com.nttdocomo.ui
クラス TextBox

Object
  拡張com.nttdocomo.ui.Component
      拡張com.nttdocomo.ui.TextBox
すべての実装インタフェース:
Interactable

public final class TextBox
extends Component
implements Interactable

テキスト入力コンポーネントを定義します。 テキストボックスクラスは、 高レベル API で使用するUI部品の一つで、 テキスト入力のためのコンポーネントです。

テキスト入力コンポーネントでは、 表示行数が1行の場合と2行以上の場合で動作が異なります。

表示行数が 1 行の場合
[DoJa-4.0 (901i) 以降] テキスト文字列に改行文字(単独の "\n" あるいは "\r\n"。 このクラスの記述では以下同様。)が含まれていた場合でも改行は行われず、 改行文字以降も表示可能な範囲で表示されます。 また、テキスト入力コンポーネントの縦幅が変更されても、 表示行数は変更されず、右端で自動改行されることはありません。
表示行数が 2 行の場合
[DoJa-4.0 (901i) 以降] テキスト文字列に改行文字が含まれていた場合、 改行して表示されます(ここでは単独の "\r" は改行として扱われないことに注意してください)。 また、 テキスト入力コンポーネントの横幅を超える文字列が設定された場合には、 右端で自動改行されます。 なお、FEP において改行を入力した場合、"\r\n"として取得されます。

[DoJa-3.0 (505i) 以降]
テキスト文字列には通常の文字列またはXStringの文字列が指定できます。 これらは排他的に動作します。 通常の文字列が設定されている場合にXStringの文字列を設定すると、 表示される文字列はXStringの内容に置き換わります。 このとき、getTextメソッドを呼び出すと、nullが返ります。 逆に、XStringの文字列が設定されている場合に通常の文字列を設定すると、 表示される文字列は通常の文字列の内容に置き換わります。 このとき、getXTextメソッドを呼び出すと、nullが返ります。 XStringの文字列が設定されている場合、編集することはできません。

[DoJa-4.1 (902i) 以降]
テキスト文字列に入力可能な文字数を制限することができます。 文字数を制限した場合、その後のユーザ入力、及び、メソッド呼び出し (setText(String)setText(XString)) によるテキスト文字列の設定では、 制限数を超える文字列を設定することはできません。


フィールドの概要
static int ALPHA
          初期入力モードをアルファベット入力モードにすることを表します (=1)。
static int DISPLAY_ANY
          表示文字列をそのまま表示するモードにすることを表します (=0)。
static int DISPLAY_PASSWORD
           文字列を隠蔽して表示するモード (パスワード入力用の表示モード) にすることを表します (=1)。
static int INPUTSIZE_UNLIMITED [iアプリオプションAPI]
          入力文字数の制限値を無制限にすることを表します (=0)。
static int KANA
          初期入力モードをかな漢字入力モードにすることを表します (=2)。
static int NUMBER
          初期入力モードを数字入力モードにすることを表します (=0)。
 
コンストラクタの概要
TextBox(String text, int columns, int rows, int mode)
           初期文字列と桁数、行数、 表示モードを指定してテキストボックスを生成します。
TextBox(XString xText, int columns, int rows, int mode)
           初期文字列(XString)と桁数、 行数、表示モードを指定してテキストボックスを生成します。
 
メソッドの概要
 String getText()
          テキスト文字列を取得します。
 XString getXText()
           テキスト文字列(XString)を取得します。
 void requestFocus()
          コンポーネントにフォーカスをセットするよう要求します。
 void setEditable(boolean b)
          テキスト文字列を編集可能にするかどうかを設定します。
 void setEnabled(boolean b)
          コンポーネントを有効状態(ユーザ操作可能な状態)にしたり 無効状態(ユーザ操作不能な状態)にしたりします。
 void setInputMode(int mode)
           テキスト文字列の初期入力モードを設定します。
 void setInputSize(int inputSize) [iアプリオプションAPI]
          テキスト文字列に入力可能な文字数を制限します。
 void setText(String text)
          テキスト文字列を設定します。
 void setText(XString xText)
           テキスト文字列を XString の文字列で設定します。
 
クラス com.nttdocomo.ui.Component から継承したメソッド
getHeight, getWidth, getX, getY, setBackground, setFont, setForeground, setLocation, setSize, setVisible
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

NUMBER

public static final int NUMBER
初期入力モードを数字入力モードにすることを表します (=0)。

関連項目:
定数フィールド値

ALPHA

public static final int ALPHA
初期入力モードをアルファベット入力モードにすることを表します (=1)。

関連項目:
定数フィールド値

KANA

public static final int KANA
初期入力モードをかな漢字入力モードにすることを表します (=2)。

関連項目:
定数フィールド値

DISPLAY_ANY

public static final int DISPLAY_ANY
表示文字列をそのまま表示するモードにすることを表します (=0)。

この表示モードに設定したテキストボックスのデフォルトの初期入力モードは、 かな漢字入力モード です。

関連項目:
定数フィールド値

DISPLAY_PASSWORD

public static final int DISPLAY_PASSWORD

文字列を隠蔽して表示するモード (パスワード入力用の表示モード) にすることを表します (=1)。

[DoJa-4.0 (901i) 以降] この表示モードに設定したテキストボックスのデフォルトの初期入力モードは、 数字入力モードです。 また、その時に入力可能な文字種は、 ブラウザにおけるパスワード入力用テキストボックスと同様です。

関連項目:
定数フィールド値

INPUTSIZE_UNLIMITED

public static final int INPUTSIZE_UNLIMITED [iアプリオプションAPI]
入力文字数の制限値を無制限にすることを表します (=0)。

導入されたバージョン:
DoJa-4.1 (902i)
関連項目:
定数フィールド値
コンストラクタの詳細

TextBox

public TextBox(String text,
               int columns,
               int rows,
               int mode)

初期文字列と桁数、行数、 表示モードを指定してテキストボックスを生成します。

生成時には、表示可能で、ユーザ操作可能になっています。 また、生成時の初期入力モードは、 引数に指定する表示モードにより異なります。 詳細は、各表示モード (DISPLAY_ANYDISPLAY_PASSWORD) の説明を参照して下さい。

表示可能、表示不能を設定するには、Component.setVisible(boolean) メソッドを使用します。 ユーザ操作可能、ユーザ操作不能を設定するには、 setEnabled(boolean) メソッドを使用します。 初期入力モードを切り替えるには、 setInputMode(int) メソッドを使用します。

パラメータ:
text - 初期文字列を指定します。null が指定された場合、 空文字列("")が設定されます。
columns - 桁数を指定します。桁数は、半角文字数で数えます。
rows - 行数を指定します。
mode - 文字列の表示モードを指定します。 DISPLAY_ANY または、DISPLAY_PASSWORD を指定します。
例外:
IllegalArgumentException - 引数 columns、rows に 0 未満の値が指定された場合に発生します。
IllegalArgumentException - 引数 mode に不正な値が指定された場合に発生します。

TextBox

public TextBox(XString xText,
               int columns,
               int rows,
               int mode)
初期文字列(XString)と桁数、 行数、表示モードを指定してテキストボックスを生成します。 生成時には、表示可能で、編集不能になっています。 表示可能、表示不能を設定するには、Component.setVisible(boolean) メソッドを使用します。 XString の文字列が設定されている限り、編集可能にはできません。

パラメータ:
xText - 初期文字列をXStringで指定します。 null が指定された場合、 表示文字列には空文字("")が設定されます。
columns - 桁数を指定します。桁数は、半角文字数で数えます。
rows - 行数を指定します。
mode - 文字列の表示モードを指定します。 DISPLAY_ANY または、DISPLAY_PASSWORD を指定します。
例外:
IllegalArgumentException - 引数 columns、rows に 0 未満の値が指定された場合に発生します。
IllegalArgumentException - 引数 mode に不正な値が指定された場合に発生します。
導入されたバージョン:
DoJa-3.0 (505i)
メソッドの詳細

setText

public void setText(String text)
テキスト文字列を設定します。 編集不能になっている場合でも、 このメソッドによりテキスト文字列が設定できます。 なお、パスワード入力モードになっている場合は、 このメソッドにより文字列を設定された場合、 表示される文字列は、エコーキャラクタ(*など)が設定文字分だけ表示されます (内部では設定された文字列を保持しています)。 文字列を設定すると、コンポーネントイベント (ComponentListener.TEXT_CHANGED) が発生します。


[DoJa-3.0 (505i) 以降]
不可視、可視に関わらず、このメソッドの呼び出しにより、 テキスト文字列が設定されます。 ただし、イベントは可視の場合だけ発生します。 また、ユーザ操作可能/不能に関わらず、このメソッドは機能します。

[DoJa-4.1 (902i) 以降]
テキスト文字列に入力可能な文字数が制限されている場合、 引数 text に指定する文字列の文字数は制限値以内でなければなりません。 入力可能な文字数の制限値を超える文字列を指定した場合は、 例外 UIException(ILLEGAL_STATE) が発生します。

パラメータ:
text - テキスト文字列を指定します。 null が指定された場合は空文字列("")が設定されます。
例外:
UIException - [DoJa-4.1 (902i) 以降] 引数 text に指定された文字列の文字数が、 入力可能な文字数の制限値より大きい場合に発生します (ILLEGAL_STATE)。

setText

public void setText(XString xText)
テキスト文字列を XString の文字列で設定します。 編集不能になっている場合でも、 このメソッドによりテキスト文字列が設定できます。 なお、パスワード入力モードになっている場合は、 このメソッドにより文字列を設定された場合、 表示される文字列は、エコーキャラクタ(*など)が設定文字分だけ表示されます (内部では設定された文字列を保持しています)。 文字列を設定すると、コンポーネントイベント (ComponentListener.TEXT_CHANGED) が発生します。

このメソッドが呼び出されると、引数の値に関係なく、 自動的に編集不能状態に変更されます。 その後に setText(String) を呼び出して通常文字列を設定しても、 編集不能状態のままです。

不可視、可視に関わらず、このメソッドの呼び出しにより、 テキスト文字列が設定されます。 ただし、イベントは可視の場合だけ発生します。 また、ユーザ操作可能/不能に関わらず、このメソッドは機能します。

[DoJa-4.1 (902i) 以降]
テキスト文字列に入力可能な文字数が制限されている場合、 引数 xText に指定する文字列の文字数は制限値以内でなければなりません。 入力可能な文字数の制限値を超える文字列を指定した場合は、 例外 UIException(ILLEGAL_STATE) が発生します。

パラメータ:
xText - XString のテキスト文字列を指定します。 null が指定された場合、 表示文字列には空文字列("")が設定されます。
例外:
UIException - [DoJa-4.1 (902i) 以降] 引数 xText に指定された文字列の文字数が、 入力可能な文字数の制限値より大きい場合に発生します (ILLEGAL_STATE)。
導入されたバージョン:
DoJa-3.0 (505i)

getText

public String getText()
テキスト文字列を取得します。

戻り値:
テキスト文字列を返します。
[DoJa-3.0 (505i) 以降]
テキスト文字列が XString である場合、 null が返ります。

getXText

public XString getXText()
テキスト文字列(XString)を取得します。
コンストラクタTextBox(XString, int, int, int) または setText(XString) メソッドに渡された、XString を返します。 したがって、null が渡された場合には、空文字列ではなく null が返ります。

戻り値:
テキスト文字列(XString)を返します。 テキスト文字列が通常文字列である場合、null が返ります。
導入されたバージョン:
DoJa-3.0 (505i)

setInputMode

public void setInputMode(int mode)

テキスト文字列の初期入力モードを設定します。 初期入力モードとは、 入力メソッドを起動した時に最初に設定されるモードのことを表します。 デフォルトの初期入力モードは、 テキストボックス生成時に設定されている表示モードにより異なります。 詳細は、各表示モード (DISPLAY_ANYDISPLAY_PASSWORD) の説明を参照して下さい。

入力可能文字種が制限されている表示モードでは、 指定した初期入力モードによっては、 入力できる文字が存在しない場合があります。
(例: 英数字しか入力できない表示モードのテキストボックスにおいて、 KANA を初期入力モードで指定した場合)
そのような初期入力モードを指定しても、 例外が発生することはありませんが、 その状態で FEP が起動された場合にどのような振る舞いをするかは機種依存です。 ただし、その場合でも、 FEP 起動後に入力モードをユーザが切り換えることによって、 入力を続行することは可能です。

パラメータ:
mode - 初期入力モードを指定します。 NUMBERALPHAKANA のいずれかを指定します。
例外:
IllegalArgumentException - 引数 mode に不正な値が指定された場合に発生します。

setInputSize

public void setInputSize(int inputSize) [iアプリオプションAPI]
テキスト文字列に入力可能な文字数を制限します。 デフォルトでは無制限に設定されています。 不可視、可視に関係なく、このメソッドを呼び出すことにより、 入力文字数の制限値を変更することができます。

入力文字数の制限値には半角文字数に換算した値を指定します。 実装がサポートしている最大文字数より大きい値を指定した場合は、 最大文字数が指定されたことになります。 既に設定されているテキスト文字列の文字数より小さい値を指定した場合は、 例外が発生します。 また、INPUTSIZE_UNLIMITED を指定した場合は、 入力文字数の制限値は無制限に設定されます。

端末によっては、このメソッドをサポートしていない場合があります。 その場合には、例外 UnsupportedOperationException が発生します。

パラメータ:
inputSize - 入力文字数の制限値を指定します。
例外:
UnsupportedOperationException - 端末がこのメソッドをサポートしていない場合に発生します。
IllegalArgumentException - 引数 inputSize が負の場合に発生します。
UIException - 引数 inputSize に指定された値が、 既に設定されている入力文字列の文字数よりも小さい場合に発生します (ILLEGAL_STATE)。
導入されたバージョン:
DoJa-4.1 (902i)

setEditable

public void setEditable(boolean b)
テキスト文字列を編集可能にするかどうかを設定します。 テキスト文字列が String 型の場合、 デフォルトでは編集可能です。 不可視、可視に関係なく、このメソッドを呼び出すことにより、 編集可能または編集不可能に設定できます。

[DoJa-3.0 (505i) 以降]
デフォルトでは文字列が String 型ならば編集可能、 XString 型ならば編集不能です。 テキスト文字列がString型である場合、不可視、可視に関係なく、 このメソッドを呼び出すことにより、 編集可能または編集不可能に設定できます。 テキスト文字列が XString 型である場合、 このメソッドを呼び出すと IllegalStateException をスローします。

パラメータ:
b - 編集可能にする場合は true を、 そうでない場合は false を指定します。
例外:
IllegalStateException - [DoJa-3.0 (505i) 以降] このオブジェクトに設定されているテキスト文字列が XString 型である場合に発生します。

setEnabled

public void setEnabled(boolean b)
インタフェース Interactable の記述:
コンポーネントを有効状態(ユーザ操作可能な状態)にしたり 無効状態(ユーザ操作不能な状態)にしたりします。 コンポーネントが可視、不可視に関わらずこのメソッドを発行することができ、 コンポーネントの状態を変更することができます。 コンポーネント生成時は有効状態です。

定義:
インタフェース Interactable 内の setEnabled
パラメータ:
b - 有効状態にする場合は true を、無効状態にする場合は false を指定します。

requestFocus

public void requestFocus()
インタフェース Interactable の記述:
コンポーネントにフォーカスをセットするよう要求します。 コンポーネントをパネルに追加する以前に発行された要求は無視されます。 また、コンポーネントが不可視の場合、無効状態(ユーザ操作不能な状態)の場合 、コンポーネントが画面上まったく表示されないように 画面左右に配置された場合もフォーカスはセットされません。

定義:
インタフェース Interactable 内の requestFocus