|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.microedition.lcdui.Item javax.microedition.lcdui.TextField
public class TextField
このクラスは Form
に置くことができる編集可能なテキスト・コンポーネントです。
初期値として任意のテキストを設定することができます。
TextField
には格納できる文字数の最大サイズが存在します。
最大サイズはオブジェクトに常に格納することができるキャラクタ数の最大値(キャパシティ)です。
TextField
のオブジェクトを構築する際に設定した最大サイズは、内容を編集することができる TextField
の場合、アプリケーションがメソッドを呼び出す場合だけではなく、ユーザーがテキストを変更する際にもこのリミットが適用されます。
最大サイズは、格納できるキャラクタ数の最大値であり、いかなる場合もディスプレイに表示できるキャラクタ数とは無関係です。
表示可能なキャラクタ数および表示方法はデバイスの表示能力およびカラム数と行数によって決定されます。
実装は最大サイズに上限を設けることがあり、アプリケーションが要求した最大サイズよりも小さな最大サイズが設定されることがあります。
実際に割り当てられた最大サイズは getMaxSize()
メソッドによって取得することができます。
注意深く記述されたアプリケーションは、この値を要求した値と比較し、それらが異なるケースの処理を考慮すべきです。
TextField
は、TextBox
オブジェクトと入力制約の概念を共有しています。
個々の制約は、ユーザーや様々なメソッドで入力するテキストをアプリケーションが必要に応じて制限することを可能にします。
実装はアプリケーションによって要求されたようにユーザーの入力を制限することを求められます。
例えば、アプリケーションが TextField
上の NUMERIC
制約を要求している場合、実装は数字の入力のみを許可します。
テキスト・オブジェクトの実際の内容は設定および変更され、TextBox
および TextField
API を通じてアプリケーションに報告されます。
実装がテキスト・オブジェクトの入力制約設定に応じた特別な書式を提供する際には、表示される内容は実際の内容と異なることがあります。
例えば、使用中の電話番号規則に合わせて、数字セパレータや適切な句読点をつけ、数字を国別番号、市外局番、接頭番号などに分類して、PHONENUMBER
フィールドを表示するかもしれません。
提供された空白や句読点も、テキスト・オブジェクトの実際の内容の一部としては考慮されません。
例えば、PHONENUMBER
入力制約のなされたテキスト・オブジェクトは以下のように表示されるかもしれません。
(408) 555-1212
しかし、アプリケーションに見える TextField
の内容は「4085551212
」のような一般的な電話番号を表す文字列となります。
size()
メソッドは表示される文字の数ではなく、実際の内容の文字数を反映したものであるため、この例に関して size()
メソッドは 10
を返します。
DECIMAL
などいくつかの入力制約は、テキスト・オブジェクトに関する内容の構文チェックを実行するための実装を必要とします。
構文チェックはテキスト・オブジェクトの実際の内容に対して行います。内容は、上記で説明されているように、表示される内容と異なることがあります。
構文チェックはコンストラクタに渡した初期の内容に対しても行います。そしてまた、それはテキスト・オブジェクトに関する内容に影響する全てのメソッドの呼び出しにおいても行われます。
アプリケーションが必要とされる構文に従わないテキスト・オブジェクトに関する内容を設定しようとするならば、コンストラクタとメソッドは IllegalArgumentException
を throw します。
setConstraints()
メソッドに渡す値は、テキスト入力および表示の振る舞いを変更するためのさまざまなフラグビットと同様に、上記で説明した入力制約のセットから構成されます。
入力制約設定の値は、下位 16 ビットの値です。そして、それは制約条件設定の値に対して、AND(&) ビット演算子と CONSTRAINT_MASK
定数を組み合わせることで抽出することができます。
入力制約設定の値は以下の通りです:
ANY
EMAILADDR
NUMERIC
PHONENUMBER
URL
DECIMAL
修飾フラグは入力制約の値の上位 16 ビット、つまり CONSTRAINT_MASK
定数の補数で示される位置にあります。
修飾フラグは、AND(&) ビット演算子と修飾フラグ定数を用いて個別に検査することができます。
修飾フラグは以下の通りです:
PASSWORD
UNEDITABLE
SENSITIVE
NON_PREDICTIVE
INITIAL_CAPS_WORD
INITIAL_CAPS_SENTENCE
TextField
と TextBox
クラスは入力モードの概念を共有しています。
アプリケーションは、ユーザーが TextField
と TextBox
の編集を開始するとき、実装が特定の入力モードを使用するように要求することができます。
入力モードは特定のデバイス上のテキスト入力のためのユーザーインタフェースの中に存在する概念です。
テキスト入力のためのユーザーインタフェースがデバイスを通して標準化されていないため、アプリケーションは直接入力モードの要求を行いません。
代わりに、アプリケーションは利便性を得られるように特定の文字の入力を要求することができます。
これは Unicode 文字サブセットの名前を setInitialInputMode()
メソッドに渡すことにより行います。
このメソッドは、ユーザーにとって利便性のある文字サブセットを指定し、実装がテキスト入力ユーザーインタフェースのモードを設定するように要求します。
ユーザーが TextBox
および TextField
オブジェクトの編集を開始するときには、常に要求された入力モードを用いるべきです。
ユーザーが前の編集セッションにおいて入力モードを変更した場合、アプリケーションによる入力モードの要求は、前にユーザーが指定した入力モードに優先します。
しかし、入力モードに制限はありません。また、ユーザーはいつでも編集中に入力モードを変更することができます。
編集が既に進行しているのであれば、setInitialInputMode
メソッドの呼び出しは現在の入力モードには影響しませんが、ユーザーがこのテキスト・オブジェクトの編集を開始する、次のタイミングで有効となります。
初期入力モードは実装へのヒントです。 実装がアプリケーションの要望に対応する入力モードを提供できないのであれば、デフォルト入力モードを使用します。
アプリケーションの要求によって生じる入力モードは、ユーザーが入力できる文字のセットを制限するものではありません。 ユーザーに対して、現在の制約設定によって容認されている全ての文字を入力できるように入力モードを切り替えさせなければなりません。 制約設定は入力モード要求に対して優先します。そして、もしも現在の制約設定に矛盾しているなら、実装は特定の入力モードの提供を行わないかもしれません。
例えば現在の入力制約が ANY
の時に以下の呼び出しを行ったとします。
setInitialInputMode("MIDP_UPPERCASE_LATIN");
初期の入力モードとして、大文字のラテン語の文字の入力を許容するように設定すべきです。
これは入力できるキャラクタの制限を行いません。そして数字の入力をするため、あるいは小文字のラテン語の文字を入力するために入力モードを切り替えることによってユーザーは他の文字を入力することができるでしょう。
しかし、現在の入力制約が NUMERIC
であるならば、MIDP_UPPERCASE_LATIN
に含まれるキャラクタが入力制約が NUMERIC
である TextField
には許容されないため、実装は初期入力モードを設定するという要求を無視するかもしれません。
このような場合、NUMERIC
制約におけるデータ入力では、実装は最も適切な入力モードとして代わりに数字の入力を許容する入力モードを用いるかもしれません。
文字列は Unicode 文字サブセットの名称で、setInitialInputMode()
メソッドに渡すために使用します。
文字列の比較は大文字と小文字を区別します。
Unicode 文字ブロックを示す名称は、Java SE の java.lang.Character.UnicodeBlock
クラスにて定義されている Unicode 文字ブロックを示すフィールドの文字列名に接頭語"UCB_"
を加えたものです。
全ての Unicode 文字ブロックは同様の方法で命名されます。
利便性のために、リストアップされている最も一般的な Unicode 文字ブロックは以下の通りです。
UCB_BASIC_LATIN
UCB_GREEK
UCB_CYRILLIC
UCB_ARMENIAN
UCB_HEBREW
UCB_ARABIC
UCB_DEVANAGARI
UCB_BENGALI
UCB_THAI
UCB_HIRAGANA
UCB_KATAKANA
UCB_HANGUL_SYLLABLES
Java SE の java.awt.im.InputSubset
クラスによって定義される"入力サブセット"は、そのクラスで定義されている入力サブセットを示すフィールドの文字列名に接頭語"IS_"
を追加することによって命名します。
全ての入力サブセットは同様の方法で命名されます。
利便性のために、現在定義されている入力サブセットの名前は以下の通りです。
IS_FULLWIDTH_DIGITS
IS_FULLWIDTH_LATIN
IS_HALFWIDTH_KATAKANA
IS_HANJA
IS_KANJI
IS_LATIN
IS_LATIN_DIGITS
IS_SIMPLIFIED_HANZI
IS_TRADITIONAL_HANZI
また、MIDP は以下の文字サブセットを定義しました:
MIDP_UPPERCASE_LATIN
- 大文字のラテン語の文字に対応するIS_LATIN
のサブセットMIDP_LOWERCASE_LATIN
- 小文字のラテン語の文字に対応するIS_LATIN
のサブセット
最終的に、実装独自の文字サブセットは"X_"
の接頭語を持つ文字列で命名します。
名前空間の衝突を避けるために、実装固有名には最初の"X_"
接頭語の直後に定義を行った会社か組織の名前を含めておくことを推奨します。
例えば、日本語アプリケーションは主として日本語以外の言語から"貸与された"単語(注記:要するに外来語のことです)の入力に、アプリケーションが使用するつもりである特定の TextField
を備えているとします。
アプリケーションは以下のメソッド呼び出しを行うことによって Hiragana(ひらがな)入力を容易にする入力モードを要求することができます。
textfield.setInitialInputMode("UCB_HIRAGANA");
実装は上記で示した全ての文字列を編纂できる必要はありません。 代わりに、Unicode 文字サブセットを命名する文字列でサポートするものを編纂する必要があります。 アプリケーションから渡されたサブセット名が、既知のサブセット名と一致しなければ、要求はエラーなしで単に無視すべきです。そして、デフォルト入力モードを使用すべきです。 これにより、実装は合理的にこの機構を低コストでサポートすることができます。
フィールドの概要 | |
---|---|
static int |
ANY
ユーザーはどのようなテキストでも入力できます。 |
static int |
CONSTRAINT_MASK
入力制約モードの要因を得るためのマスク値です。 |
static int |
DECIMAL
ユーザーはオプションの 10 進小数に従った、例えば "-123" 、"0.123" 、".5" のような数値を入力することができます。 |
static int |
EMAILADDR
ユーザーは電子メール・アドレスを入力できます。 |
static int |
INITIAL_CAPS_SENTENCE
このフラグは実装に対してテキスト編集の間それぞれの文(センテンス)の頭文字を大文字で表記すべきであるというヒントです。 |
static int |
INITIAL_CAPS_WORD
このフラグは実装に対してテキスト編集の間それぞれの単語の頭文字を大文字で表記すべきであるというヒントです。 |
static int |
NON_PREDICTIVE
入力されるテキストが、予測を行う入力体系によって通常使用する辞書で見つけられそうな単語からは構成されないことを示します。 |
static int |
NUMERIC
ユーザーは整数値のみを入力できます。 |
static int |
PASSWORD
入力されたテキストは、可能である限り常に隠されるべき秘密のデータであることを示します。 |
static int |
PHONENUMBER
ユーザーは電話番号を入力することができます。 |
static int |
SENSITIVE
入力されたテキストが、実装が辞書を使用した予測や、自動補完や、または他の入力支援体系が使用するための辞書やテーブルの中に内容を決して保存してはならない、重要なデータであることを示します。 |
static int |
UNEDITABLE
編集が現在禁じられていることを示します。 |
static int |
URL
ユーザーは URL を入力することができます。 |
クラス javax.microedition.lcdui.Item から継承されたフィールド |
---|
BUTTON, HYPERLINK, LAYOUT_2, LAYOUT_BOTTOM, LAYOUT_CENTER, LAYOUT_DEFAULT, LAYOUT_EXPAND, LAYOUT_LEFT, LAYOUT_NEWLINE_AFTER, LAYOUT_NEWLINE_BEFORE, LAYOUT_RIGHT, LAYOUT_SHRINK, LAYOUT_TOP, LAYOUT_VCENTER, LAYOUT_VEXPAND, LAYOUT_VSHRINK, PLAIN |
コンストラクタの概要 | |
---|---|
TextField(String title,
String text,
int maxSize,
int constraints)
指定されたタイトル文字列、テキストの内容、最大文字数および入力制約を設定した新しい TextField オブジェクトを作成します。 |
メソッドの概要 | |
---|---|
void |
delete(int offset,
int length)
TextField から文字を削除します。 |
int |
getCaretPosition()
現在の入力位置を返します。 |
int |
getChars(char[] data)
指定された文字配列に TextField の内容をコピーします。 |
int |
getConstraints()
TextField に設定されている現在の入力制約を返します。 |
int |
getMaxSize()
この TextField に格納することができる最大サイズ(文字数)を返します。 |
String |
getString()
TextField の内容を文字列として返します。 |
void |
insert(char[] data,
int offset,
int length,
int position)
TextField の内容に文字配列の一部を挿入します。 |
void |
insert(String src,
int position)
TextField の内容に文字列を挿入します。 |
void |
setChars(char[] data,
int offset,
int length)
以前の内容を置き換えて、文字配列を TextField の内容を設定します。 |
void |
setConstraints(int constraints)
TextField に新たな入力制約を設定します。 |
void |
setInitialInputMode(String characterSubset)
ユーザーがこの TextField の編集を開始する際に使用すべきである入力モードに関して実装にヒントを設定します。 |
int |
setMaxSize(int maxSize)
この TextField に格納することができる最大サイズ(文字数)を設定します。 |
void |
setString(String text)
指定された新しい内容を TextField に設定します。 |
int |
size()
この TextField に現在格納されている内容の文字数を返します。 |
クラス javax.microedition.lcdui.Item から継承されたメソッド |
---|
addCommand, getLabel, getLayout, getMinimumHeight, getMinimumWidth, getPreferredHeight, getPreferredWidth, notifyStateChanged, removeCommand, setDefaultCommand, setItemCommandListener, setLabel, setLayout, setPreferredSize |
クラス java.lang.Object から継承されたメソッド |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
public static final int ANY
ユーザーはどのようなテキストでも入力できます。 改行を入れることもできるかもしれません。
ANY
には定数 0
が割り当てられます。
public static final int EMAILADDR
ユーザーは電子メール・アドレスを入力できます。
EMAILADDR
には定数 1
が割り当てられます。
public static final int NUMERIC
ユーザーは整数値のみを入力できます。
実装は空であるか、またはオプションのマイナス符号と後ろに続く一連の1つ以上の10進数からなるように内容を制限しなければなりません。
値が空ではない場合、それは Integer.parseInt(String)
を用いてパース可能です。
マイナス符号はテキスト・オブジェクト内のスペースを消費します。
このため、最大サイズが 1
であるテキスト・オブジェクトに負数を入れることはできません。
NUMERIC
には定数 2
が割り当てられます。
public static final int PHONENUMBER
ユーザーは電話番号を入力することができます。 電話番号における特別なケースでは、電話ベースの実装がネイティブな電話ダイヤルアプリケーションにリンクされるかもしれません。 実装は単一のキーを押すことにより、電話をかけるための十分な初期化が行われる電話ダイヤル・アプリケーションを自動的に開始するかもしれません。 ユーザーの確認を省略して自動的にダイヤルを開始するように作成してはなりません。 また、実装はデバイスの電話帳またはアドレス帳から電話番号を取得する機能を提供するかもしれません。
許容される文字の正確なセットは、デバイスとデバイスのネットワークに依存しており、接頭文字"+"
のような非数字を含むかもしれません。
いくつかのプラットフォームでは、MIDlet.platformRequest
メソッドを使用することによって音声通話を開始する機能を提供するかもしれません。
PHONENUMBER
には定数 3
が割り当てられます。
public static final int URL
ユーザーは URL を入力することができます。
URL
には定数 4
が割り当てられます。
public static final int DECIMAL
ユーザーはオプションの 10 進小数に従った、例えば"-123"
、"0.123"
、".5"
のような数値を入力することができます。
実装は少数セパレータとして、デバイスで用いられている慣習に従って、ピリオド"."
またはコンマ","
を表示するかもしれません。
同様に、実装は10進数文字列の一部として他のデバイス固有の、数字セパレータのためのスペースやコンマのような特性を見せるかもしれません。
しかし、テキスト・オブジェクトの実際の内容で許容される文字は、ピリオド"."
、マイナス符号"-"
、そして10進数字のみです。
DECIMAL
テキスト・オブジェクトの実際の内容は空であるかもしれません。
実際の内容が空ではないなら、Java 言語仕様(Java Language Specification)のセクション 3.10.2 によって定義されるように、それらは浮動小数点リテラル(FloatingPointLiteral
)ための構文のサブセットに従わなければなりません。
このサブセット構文は以下のように定義されます:
実際の内容は、オプションのマイナス符号"-"
に続いて、1つかそれ以上の整数10進数字、オプションの小数点に続けてゼロかそれ以上の少数数字からならなければなりません。
小数点と1つ以上の少数数字が存在しているなら、整数10進数字は省略することができます。
また、アプリケーションがコンストラクタあるいはメソッドを呼び出してテキスト・オブジェクトに関する内容を設定するか、または変更を行うときには、常に上記で定義された構文に合致しなければなりません。
この文字列値を計算に適した数値に解析するのはアプリケーションの責任です。
それらが実行環境に存在しており内容が空でなければ、Double.valueOf
と関連するメソッドによって解析を実施することができます。
符号と小数点はテキスト・オブジェクト内のスペースを消費します。 テキスト・オブジェクトのための最大サイズを割り当てるとき、アプリケーションはこれを織り込むべきです。
DECIMAL
には定数 5
が割り当てられます。
public static final int PASSWORD
入力されたテキストは、可能である限り常に隠されるべき秘密のデータであることを示します。
ユーザーがデータを入力している間、内容は可視状態にあるかもしれません。
しかしながら、内容をユーザーに決して明かしてはなりません。
特にユーザーが内容を編集するときに既存の内容を提示してはなりません。
内容を隠すための手段は実装に依存します。
例えば、データのそれぞれの文字は"*"
でマスクされるかもしれません。
PASSWORD
修飾子はパスワードや個人識別番号(暗証番号)などの秘密情報を入力するのに役立ちます。
実装が辞書を使用した予測や、自動補完や、または他の入力支援体系が使用するための辞書やテーブルの中に内容を決して保存してはならず、PASSWORD
フィールドの中に入力されたデータは SENSITIVE
と同様に扱われます。
また、PASSWORD
ビットが入力制約値で設定されるなら、実際の値に関わらず SENSITIVE
と NON_PREDICTIVE
ビットが設定されているとみなします。
さらに、INITIAL_CAPS_WORD
と INITIAL_CAPS_SENTENCE
フラグビットが設定されたとしても、それらは無視すべきです。
OR
ビット演算子(|
)を使用することで、他の入力制約に PASSWORD
修飾子を結合できます。
PASSWORD
修飾子は EMAILADDR
、PHONENUMBER
および URL
などのいくつかの入力制約には役立ちません。
しかし、これらの組み合わせは適正であり、そしてそのような入力制約が指定されても例外は throw しません。
PASSWORD
には定数 0x10000
が割り当てられます。
public static final int UNEDITABLE
編集が現在禁じられていることを示します。 このフラグが設定されている場合、実装はユーザーがこのオブジェクトのテキストの内容を変更することができないようにしなければなりません。 また、実装はオブジェクトのテキストを編集できないという視覚的表現を提供すべきです。 このフラグは、このテキスト・オブジェクトは編集される可能性があり、アプリケーションがこのフラグをクリアして、ユーザーが内容を編集することを許可する可能性があることを意図しています。
OR
ビット演算子(|
)を使用することで、他の入力制約に UNEDITABLE
修飾子を結合できます。
UNEDITABLE
には定数 0x20000
が割り当てられます。
public static final int SENSITIVE
入力されたテキストが、実装が辞書を使用した予測や、自動補完や、または他の入力支援体系が使用するための辞書やテーブルの中に内容を決して保存してはならない、重要なデータであることを示します。 クレジットカード番号は重要なデータの例です。
OR
ビット演算子(|
)を使用することで、他の入力制約に SENSITIVE
修飾子を結合できます。
SENSITIVE
には定数 0x40000
が割り当てられます。
public static final int NON_PREDICTIVE
入力されるテキストが、予測を行う入力体系によって通常使用する辞書で見つけられそうな単語からは構成されないことを示します。 このビットがクリアされているなら、実装は予測を行う入力体系を使用できます(しかし必須ではありません)。 このビットがセットされているなら、実装はどのような予測を行う入力体系も使用すべきではありませんが、その代わりに文字と文字によるテキスト入力を容認すべきです。
OR
ビット演算子(|
)を使用することで、他の入力制約に NON_PREDICTIVE
修飾子を結合できます。
NON_PREDICTIVE
には定数 0x80000
が割り当てられます。
public static final int INITIAL_CAPS_WORD
このフラグは実装に対してテキスト編集の間それぞれの単語の頭文字を大文字で表記すべきであるというヒントです。 このヒントは自動的な大文字化が適切であるデバイスにおいて、編集されるテキストの文字セットに大文字と小文字の概念があるときに尊重されるべきものです。 語句境界の定義は実装に依存します。
アプリケーションが INITIAL_CAPS_WORD
と INITIAL_CAPS_SENTENCE
フラグの両方を指定するなら、INITIAL_CAPS_WORD
の振る舞いを使用すべきです。
OR
ビット演算子(|
)を使用することで、他の入力制約に INITIAL_CAPS_WORD
修飾子を結合できます。
INITIAL_CAPS_WORD
には定数 0x100000
が割り当てられます。
public static final int INITIAL_CAPS_SENTENCE
このフラグは実装に対してテキスト編集の間それぞれの文(センテンス)の頭文字を大文字で表記すべきであるというヒントです。 このヒントは自動的な大文字化が適切であるデバイスにおいて、編集されるテキストの文字セットに大文字と小文字の概念があるときに尊重されるべきものです。 文境界の定義は実装に依存します。
アプリケーションが INITIAL_CAPS_WORD
と INITIAL_CAPS_SENTENCE
フラグの両方を指定するなら、INITIAL_CAPS_WORD
の振る舞いを使用すべきです。
OR
ビット演算子(|
)を使用することで、他の入力制約に INITIAL_CAPS_SENTENCE
修飾子を結合できます。
INITIAL_CAPS_SENTENCE
には定数 0x200000
が割り当てられます。
public static final int CONSTRAINT_MASK
入力制約モードの要因を得るためのマスク値です。
アプリケーションは、PASSWORD
のような修飾フラグを削除した現在の入力制約モードを得るために getConstraints()
が返す値を CONSTRAINT_MASK
の値で AND
ビット演算子(&
)を使用すべきです。
CONSTRAINT_MASK
には定数 0xFFFF
が割り当てられます。
コンストラクタの詳細 |
---|
public TextField(String title, String text, int maxSize, int constraints)
指定されたタイトル文字列、テキストの内容、最大文字数および入力制約を設定した新しい TextField
オブジェクトを作成します。
text
パラメータが null
の場合、TextBox
は空の状態で作成されます。
maxSize
パラメータは 0
以上の値でなければなりません。
初期の内容文字列の長さが maxSize
を超えているなら IllegalArgumentException
を throw します。
しかし、実装はアプリケーションが要求したより小さな最大サイズを割り当てるかもしれません。
これによって内容の長さが新たに割り当てられた最大サイズを超えている場合には、内容は新しいサイズに合うように終端を切り取ります。そして、例外は throw しません。
title
- ディスプレイに表示するタイトル文字列を渡します。text
- 編集エリアに設定するテキストの初期内容あるいは null
を渡します。maxSize
- 最大キャラクタ数を渡します。constraints
- 入力制約を渡します。
IllegalArgumentException
- maxSize
が 0
未満の場合、constraints
が不正な場合、text
が入力制約に違反する場合および text
の長さが最大サイズを超えている場合に throw します。メソッドの詳細 |
---|
public String getString()
TextField
の内容を文字列として返します。
setString(java.lang.String)
public void setString(String text)
指定された新しい内容を TextField
に設定します。
以前の内容は新しい内容と置き換えられます。
text
- 新しく設定する内容を渡します。
IllegalArgumentException
- text
が入力制約に違反する場合および text
の長さが最大サイズを超えている場合に throw します。getString()
public int getChars(char[] data)
指定された文字配列に TextField
の内容をコピーします。
内容をコピーした配列以降の配列の内容は変更されません。
data
- 内容を受け取る文字配列を渡します。
ArrayIndexOutOfBoundsException
- 内容の長さと比較してコピー先の文字配列の長さが短い場合に throw します。
NullPointerException
- data
に null
が渡された場合に throw します。setChars(char[], int, int)
public void setChars(char[] data, int offset, int length)
以前の内容を置き換えて、文字配列を TextField
の内容を設定します。
キャラクタは data
配列の offset
が示す位置から length
キャラクタ分をコピーします。
data
配列が null
ならば、TextField
は空に設定し、その他のパラメータは無視します。
offset
と length
のパラメータは文字配列 data
の中で、文字の有効な範囲を指定しなければなりません。
offset
パラメータは範囲 [0 〜 (data.length)] の中を指していなければなりません。
length
パラメータは正数で (offset + length) <= data.length
でなければなりません。
data
- 設定する元の文字配列あるいは null
を渡します。offset
- 設定を開始する文字配列中の位置を渡します。length
- 設定する文字数を渡します。
ArrayIndexOutOfBoundsException
- offset
および length
による範囲指定が data
に対して不適切な場合に throw します。
IllegalArgumentException
- data
が入力制約に違反する場合および length
の長さが最大サイズを超えている場合に throw します。getChars(char[])
public void insert(String src, int position)
TextField
の内容に文字列を挿入します。
文字列は、内容の1文字目を 0
とする位置を基準とするパラメータ position
によって指定された位置に挿入されます。
以後のテキストは挿入した文字数分、後方へ移動します。
position
が 0
あるいはそれ以下の場合、内容の前に指定された文字列を挿入します。
同様に position
が内容の最後の位置あるいは最上の場合、内容の直後に指定された文字列を挿入、つまり追加します。
例えば、text.insert(s, text.size())
は常に文字列 s
を現在のないように追加します。
内容のサイズは挿入した文字数分増加します。 増加した結果のサイズは設定されている最大サイズ以下でなければなりません。
アプリケーションはタイピングしたように文字を挿入する場合、getCaretPosition()
メソッドによって取得した位置を使用して挿入します。
例えば、text.insert(s, text.getCaretPosition())
と記述すると、現在の入力位置に文字列 s
を挿入することができます。
src
- 挿入する文字列を渡します。position
- 文字列を挿入する内容の中の位置を渡します。
IllegalArgumentException
- src
が入力制約に違反する場合および挿入後の内容の長さが最大サイズを超えている場合に throw します。
NullPointerException
- src
パラメータが null
の場合に throw します。public void insert(char[] data, int offset, int length, int position)
TextField
の内容に文字配列の一部を挿入します。
offset
と length
パラメータは、挿入のために使用する文字配列内の開始位置と文字数を示します。
挿入自体の動作は insert(String, int)
と同一です。
offset
と length
のパラメータは文字配列 data
の中で、文字の有効な範囲を指定しなければなりません。
offset
パラメータは範囲 [0 〜 (data.length)] の中を指していなければなりません。
length
パラメータは正数で (offset + length) <= data.length
でなければなりません。
data
- 設定する元の文字配列を渡します。offset
- 設定を開始する文字配列中の位置を渡します。length
- 設定する文字数を渡します。position
- 文字列を挿入する内容の中の位置を渡します。
ArrayIndexOutOfBoundsException
- offset
および length
による範囲指定が data
に対して不適切な場合に throw します。
IllegalArgumentException
- data
が入力制約に違反する場合および挿入後の内容の長さが最大サイズを超えている場合に throw します。
NullPointerException
- data
パラメータが null
の場合に throw します。public void delete(int offset, int length)
TextField
から文字を削除します。
offset
と length
のパラメータは内容テキストの中で、文字の有効な範囲を指定しなければなりません。
offset
パラメータは範囲 [0 〜 (size())] の中を指していなければなりません。
length
パラメータは正数で (offset + length) <= size()
でなければなりません。
offset
- 削除を開始する内容中の位置を渡します。length
- 削除する文字数を渡します。
StringIndexOutOfBoundsException
- offset
および length
によって指定された範囲が TextField
の内容の範囲外の場合に throw します。
IllegalArgumentException
- data
が入力制約に違反する場合に throw します。public int getMaxSize()
この TextField
に格納することができる最大サイズ(文字数)を返します。
public int setMaxSize(int maxSize)
この TextField
に格納することができる最大サイズ(文字数)を設定します。
もしも、TextField
の現在の内容が maxSize
よりも長い場合、内容は maxSize
に合うように終端を切り詰めます。
maxSize
- 新しい最大サイズを渡します。
IllegalArgumentException
- maxSize
に 0
あるいはそれ以下の値を渡した場合および切り捨てを行った結果の内容が入力制約に違反する場合に throw します。public int size()
この TextField
に現在格納されている内容の文字数を返します。
public int getCaretPosition()
現在の入力位置を返します。 ユーザーインタフェースの種類によっては、この呼び出しによってしばらくの間ブロックすることがあります。 また、意図するキャレット位置をユーザーに問い合わせることがあります。 単純にキャレット記号を表示している位置を返すこともあります。
0
を始点とする値で返します。public void setConstraints(int constraints)
TextField
に新たな入力制約を設定します。
TextField
の現在の内容が新しい制約に一致しない場合、内容はクリアされます。
constraints
- 入力制約を渡します。
IllegalArgumentException
- 指定した constraints
が不適切な場合に throw します。public int getConstraints()
TextField
に設定されている現在の入力制約を返します。
public void setInitialInputMode(String characterSubset)
ユーザーがこの TextField
の編集を開始する際に使用すべきである入力モードに関して実装にヒントを設定します。
characterSubset
パラメータには初期入力モードを選択するために実装で使用する Unicode 文字サブセット名を指定します。
null
が渡された場合、実装はデフォルトの入力モードを選択します。
入力モードの詳細については入力モードを参照してください。
characterSubset
- Unicode 文字サブセットの名前を示す文字列あるいは null
を渡します。
|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
公式仕様書原文の著作権表記等(※): Mobile Information Device Profile Specification ("Specification") Version: 2.0 Status: FCS Release: November 5, 2002 Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc. All rights reserved. | ※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |