Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

javax.microedition.lcdui
クラス TextBox

java.lang.Object
  上位を拡張 javax.microedition.lcdui.Displayable
      上位を拡張 javax.microedition.lcdui.Screen
          上位を拡張 javax.microedition.lcdui.TextBox

public class TextBox
extends Screen

このクラスはユーザーがテキストを入力および編集することを可能にする Screen です。

TextBox には格納できる文字数の最大サイズが存在します。 最大サイズはオブジェクトに常に格納することができるキャラクタ数の最大値(容量)です。 TextBox のオブジェクトを構築する際に設定した最大サイズは、内容を編集することができる TextBox の場合、アプリケーションがメソッドを呼び出す場合だけではなく、ユーザーがテキストを変更する際にもこのリミットが適用されます。 最大サイズは、格納できるキャラクタ数の最大値であり、いかなる場合もディスプレイに表示できるキャラクタ数とは無関係です。 表示可能なキャラクタ数および表示方法はデバイスの表示能力およびカラム数と行数によって決定されます。

実装は最大サイズに上限を設けることがあり、アプリケーションが要求した最大サイズよりも小さな最大サイズが設定されることがあります。 実際に割り当てられた最大サイズは getMaxSize() メソッドによって取得することができます。 注意深く記述されたアプリケーションは、この値を要求した値と比較し、それらが異なるケースの処理を考慮すべきです。

TextBox 内に含まれるテキストは、一度に表示することができる量よりも多いかもしれません。 その場合、実装はテキストのスクロールを行い、テキスト全体の編集および表示を行えるようにします。 スクロールはアプリケーションに対して透過的に行われます。

入力制約が TextField.ANY に設定されているなら、テキストは改行を含むことができます。 テキストを表示する際にはそれに従って改行しなければなりません。そして、ユーザーは改行文字を入力できなければなりません。

TextBoxTextField と同様の入力制約の概念を持っています。 TextBox クラス内のメソッドの制約パラメータは、TextField クラスの中で定義されている定数を使用します。 これらの定数の定義に関しては TextField クラスにおける入力制約の記述を参照してください。 また、TextBox には、同じセクションで説明されいている実際の内容表示される内容について、TextField と同じ考え方を共有しています。

TextBox には、TextField と同じ入力モードの概念があります。 その他の詳細に関しては TextField クラスにおける、入力モードの解説を参照してください。

導入されたバージョン:
MIDP 1.0

コンストラクタの概要
TextBox(String title, String text, int maxSize, int constraints)
          指定したタイトル文字列、初期のテキスト内容、最大キャラクタ数および入力制約を持った新しい TextBox オブジェクトを作成します。
 
メソッドの概要
 void delete(int offset, int length)
          TextBox の内容の指定された位置から指定された長さの文字を削除します。
 int getCaretPosition()
          現在の入力位置を返します。
 int getChars(char[] data)
          指定された文字配列に TextBox の内容をコピーします。
 int getConstraints()
          TextBox に設定されている現在の入力制約を返します。
 int getMaxSize()
          この TextBox に格納することができる最大サイズ(文字数)を返します。
 String getString()
          TextBox の内容を文字列として返します。
 void insert(char[] data, int offset, int length, int position)
          TextBox の内容に文字配列の一部を挿入します。
 void insert(String src, int position)
          TextBox の内容に文字列を挿入します。
 void setChars(char[] data, int offset, int length)
          指定された文字配列の指定された位置から指定文字分を TextBox に設定します。
 void setConstraints(int constraints)
          TextBox に新たな入力制約を設定します。
 void setInitialInputMode(String characterSubset)
          ユーザーがこの TextBox に対する編集を開始する際に使用すべき入力モードに関して実装に対するヒントを設定します。
 int setMaxSize(int maxSize)
          この TextBox に格納することができる最大サイズ(文字数)を設定します。
 void setString(String text)
          指定された新しい内容を TextBox に設定します。
 int size()
          この TextBox に現在格納されている内容の文字数を返します。
 
クラス javax.microedition.lcdui.Displayable から継承されたメソッド
addCommand, getHeight, getTicker, getTitle, getWidth, isShown, removeCommand, setCommandListener, setTicker, setTitle, sizeChanged
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

TextBox

public TextBox(String title,
               String text,
               int maxSize,
               int constraints)

指定したタイトル文字列、初期のテキスト内容、最大キャラクタ数および入力制約を持った新しい TextBox オブジェクトを作成します。 text パラメータが null ならば、TextBox は空の状態で作成します。 maxSize パラメータは 0 以上でなければなりません。 初期のテキスト内容文字列の長さが maxSize を超えているならば、IllegalArgumentException を throw します。 しかし、実装はアプリケーションが要求したよりも小さな最大サイズを割り当てることがあります。 これによって、内容の長さが新たに割り当てられた最大サイズを超えているのであれば、内容をこのサイズに合うように終端を切り取ります。この際例外は一切 throw しません。

パラメータ:
title - ディスプレイに表示するタイトル文字列を渡します。
text - 編集エリアに設定するテキストの初期内容あるいは null を渡します。
maxSize - 最大キャラクタ数を渡します。実装は最大サイズに上限を設けることがあり、アプリケーションが要求した最大サイズよりも小さな最大サイズが設定されることがあります。 実際に割り当てられた最大サイズは getMaxSize() メソッドによって取得することができます。 注意深く記述されたアプリケーションは、この値を要求した値と比較するでしょう。
constraints - 入力制約を渡します。
例外:
IllegalArgumentException - maxSize0 未満の場合、constraints が不正な場合、text入力制約に違反する場合および text の長さが最大サイズを超えている場合に throw します。
メソッドの詳細

getString

public String getString()

TextBox の内容を文字列として返します。

戻り値:
現在の内容を返します。

setString

public void setString(String text)

指定された新しい内容を TextBox に設定します。 以前の内容は新しい内容と置き換えられます。

パラメータ:
text - 新しく設定する内容を渡します。
例外:
IllegalArgumentException - text入力制約に違反する場合および text の長さが最大サイズを超えている場合に throw します。

getChars

public int getChars(char[] data)

指定された文字配列に TextBox の内容をコピーします。 内容をコピーした配列以降の配列の内容は変更されません。

パラメータ:
data - 内容を受け取る文字配列を渡します。
戻り値:
コピーした文字数を返します。
例外:
ArrayIndexOutOfBoundsException - 内容の長さと比較してコピー先の文字配列の長さが短い場合に throw します。
NullPointerException - datanull が渡された場合に throw します。
関連項目:
setChars(char[], int, int)

setChars

public void setChars(char[] data,
                     int offset,
                     int length)

指定された文字配列の指定された位置から指定文字分を TextBox に設定します。 以前の内容は新しい内容と置き換えられます。 data 配列内の offset が示す位置(1 文字目が 0)から length 文字数分の内容を設定します。 datanull の場合、TextBox は「空」の状態になります。

パラメータ:
data - 設定する元の文字配列を渡します。
offset - 設定を開始する文字配列中の位置を渡します。
length - 設定する文字数を渡します。
例外:
ArrayIndexOutOfBoundsException - offset および length による範囲指定が data に対して不適切な場合に throw します。
IllegalArgumentException - data入力制約に違反する場合および length の長さが最大サイズを超えている場合に throw します。
関連項目:
getChars(char[])

insert

public void insert(String src,
                   int position)

TextBox の内容に文字列を挿入します。 文字列は、内容の1文字目を 0 とする位置を基準とするパラメータ position によって指定された位置に挿入されます。 以後のテキストは挿入した文字数分、後方へ移動します。 position0 あるいはそれ以下の場合、内容の前に指定された文字列を挿入します。 同様に position が内容の最後の位置あるいは最上の場合、内容の直後に指定された文字列を挿入、つまり追加します。 例えば、text.insert(s, text.size()) は、常に文字列 s を現在の内容に追加します。

内容のサイズは挿入した文字数分増加します。 増加した結果のサイズは設定されている最大サイズ以下でなければなりません。

アプリケーションはタイピングしたように文字を挿入する場合、getCaretPosition() メソッドによって取得した位置を使用して挿入します。 例えば、text.insert(src, text.getCaretPosition()) と記述すると、現在の入力位置に文字列 src を挿入することができます。

パラメータ:
src - 挿入する文字列を渡します。
position - 文字列を挿入する内容の中の位置を渡します。
例外:
IllegalArgumentException - src入力制約に違反する場合および挿入後の内容の長さが最大サイズを超えている場合に throw します。

insert

public void insert(char[] data,
                   int offset,
                   int length,
                   int position)

TextBox の内容に文字配列の一部を挿入します。 offsetlength パラメータは、挿入のために使用する文字配列内の開始位置と文字数を示します。 挿入自体の動作は insert(String, int) と同一です。

offsetlength パラメータは文字配列データ内の文字の有効範囲を示していなければなりません。 offset パラメータは 0 〜 (data.length) の範囲内でなければなりません。 length パラメータは常に正数でなければならず、(offset + length) <= data.length の範囲となります。

パラメータ:
data - 設定する元の文字配列を渡します。
offset - 設定を開始する文字配列中の位置を渡します。
length - 設定する文字数を渡します。
position - 文字列を挿入する内容の中の位置を渡します。
例外:
ArrayIndexOutOfBoundsException - offset および length による範囲指定が data に対して不適切な場合に throw します。
IllegalArgumentException - data入力制約に違反する場合および挿入後の内容の長さが最大サイズを超えている場合に throw します。
NullPointerException - datanull の場合に throw します。

delete

public void delete(int offset,
                   int length)

TextBox の内容の指定された位置から指定された長さの文字を削除します。

offsetlength パラメータは TextBox の内容文字列データ内の有効範囲を示していなければなりません。 offset パラメータは 0 〜 (size()) の範囲内でなければなりません。 length パラメータは常に正数でなければならず、(offset + length) <= size() の範囲となります。

パラメータ:
offset - 削除を開始する内容中の位置を渡します。
length - 削除する文字数を渡します。
例外:
StringIndexOutOfBoundsException - offset および length によって指定された範囲が TextBox の内容の範囲外の場合に throw します。
IllegalArgumentException - 結果として得られる内容が入力制約に違反する場合に throw します。

getMaxSize

public int getMaxSize()

この TextBox に格納することができる最大サイズ(文字数)を返します。

戻り値:
格納できる最大サイズを返します。
関連項目:
setMaxSize(int)

setMaxSize

public int setMaxSize(int maxSize)

この TextBox に格納することができる最大サイズ(文字数)を設定します。 もし、現在の内容が maxSize よりも長い場合、内容は maxSize に切り詰められます。

パラメータ:
maxSize - 新しい最大サイズを渡します。
戻り値:
設定された最大サイズを返します。このサイズは要求したサイズよりも小さい可能性があります。
例外:
IllegalArgumentException - maxSize0 あるいはそれ以下の値を渡した場合および内容をサイズに合わせて切り詰めた結果が入力制約に違反する場合に throw します。
関連項目:
getMaxSize()

size

public int size()

この TextBox に現在格納されている内容の文字数を返します。

戻り値:
内容の文字数を返します。

getCaretPosition

public int getCaretPosition()

現在の入力位置を返します。 ユーザーインタフェースの種類によっては、この呼び出しによってしばらくの間ブロックすることがあります。 また、意図するキャレット位置をユーザーに問い合わせることがあります。 単純にキャレット記号を表示している位置を返すこともあります。

戻り値:
現在の入力位置を1文字目が 0 となる位置で返します。

setConstraints

public void setConstraints(int constraints)

TextBox に新たな入力制約を設定します。 TextBox の現在の内容が新しい制約に一致しない場合、内容はクリアされます。

パラメータ:
constraints - 入力制約を渡します。
例外:
IllegalArgumentException - 指定した constraints が不適切な場合に throw します。
関連項目:
getConstraints()

getConstraints

public int getConstraints()

TextBox に設定されている現在の入力制約を返します。

戻り値:
現在設定されている入力制約を返します。
関連項目:
setConstraints(int)

setInitialInputMode

public void setInitialInputMode(String characterSubset)

ユーザーがこの TextBox に対する編集を開始する際に使用すべき入力モードに関して実装に対するヒントを設定します。 characterSubset パラメータには初期入力モードを選択するために実装が使用すべき Unicode 文字のサブセットを指定します。 null が指定されたなら、実装はデフォルトの入力モードを選択します。

入力モードに関するさらに詳しい説明は入力モードを参照してください。

パラメータ:
characterSubset - Unicode 文字サブセットを意味する文字列あるいは null を渡します。
導入されたバージョン:
MIDP 2.0

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 部分は同仕様の範囲外であるため、まったく参考とはしていません。

※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。

この API リファレンスは仕様書の日本語版という位置づけでは作成していませんし、仕様書ほど厳格でもありません。MUST、SHOULD、MAY などの仕様の条件を強調する文を維持していません(反映すらしていない個所もあります)。仮想マシンおよび MIDP の実装のために使用することは避けてください。そのような用途には必ず公式仕様書原文そのものを用いるべきです。
この API リファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Motorola, Inc、Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Motorola, Inc、Java Community Process 等とは一切関係ありません。したがってこの API リファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本 API リファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカル・ファイル等に保存することを禁じます。


Copyright© 2001-2002,2005-2009,2011 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。

Unofficial "CLDC 1.0 + MIDP 1.0" API Reference はこちらです。