Previous | Next | Trail Map | Creating a User Interface | GUI の構成ブロックであるコンポーネントを使用する


テキストエリアとテキストフィールドの使用方法

TextArea(in the API reference documentation)TextField(in the API reference documentation) クラスは、選択できるテキストを表示し、オプションとしてユーザがそのテキストを編集できるようにする。 TextArea と TextField をサブクラス化すると、入力のエラーをチェックするようなタスクを実行することができる。 あらゆる Component と同じように、TextArea と TextField が使用する背景色と前景色を指定することができる。 しかし、それらの基本的な外観を変更することはできない。

TextArea と TextField はどちらもTextComponent(in the API reference documentation) のサブクラスである。これらは、現在の選択の設定や取り込み、編集の有効化と無効化、現在選択されているテキスト (またはすべてのテキスト) の取り込み、およびテキストの設定を行うメソッド を TextComponent から継承する。

以下に、まず TextField を表示し、次に TextArea を表示するアプレットを示す。 TextField は編集可能であり、TextArea は編集不能である。 ユーザが TextField で改行キーを押すと、その内容が TextArea にコピーされ、 TextField で選択されるようになっている。

プログラムも参照できる。 次に、TextArea と TextField のイベントを作成し、初期化し、処理するコード部分を示す。

//インスタンス変数を定義する:
TextField textField;
TextArea textArea;

public void init() {
    textField = new TextField(20);
    textArea = new TextArea(5, 20);
    textArea.setEditable(false);

    ...//2 つのコンポーネントをパネルに追加する。 
}

public boolean action(Event evt, Object arg) {
    String text = textField.getText();
    textArea.appendText(text + "¥n");
    textField.selectAll();
    return true;
}

TextArea と TextField の TextComponent スーパークラスは、上記のコード例で使用されているgetText()setText()setEditable()selectAll() メソッドを提供する。また、getSelectedText()isEditable()getSelectionStart()getSelectionEnd() といった便利なメソッドを提供するほか、指定された開始位置と終了位置の間にあるテキストを選択する select() メ ソッドも用意している。

TextField クラスは、TextField()TextField(int)TextField(String)TextField(String, int) という 4 つの構築子をもっている。 整数引数はテキストフィールドの列の数を指定し、 String 引数はテキストフィールドに初めに表示されるテキストを指定する。 TextField メソッドは以下のような便利なメソッドも提供する。

int getColumns()
テキストフィールドの列の数を返す。
setEchoChar()
エコー文字を設定する。エコー文字はパスワードフィールドで便利である。
char getEchoChar() boolean echoCharIsSet()
これらのメソッドにより、エコー文字を調べることができる。

TextField クラスと同じように、TextArea クラスにも 4 つの構築子がある。これらは TextArea()TextArea(int, int)TextArea(String)TextArea(String, int, int) である。 整数引数はテキストエリアの行と列の数を (それぞれ) 指定し、String 引数はテキ ストエリアに初めに表示されるテキストを指定する。

TextArea クラスは、上記のコード例で使用されている appendText() メソッドを提供するほか、以下のようなメソッドも用意している。

int getRows(), int getColumns()
テキストエリアにある行または列の数を返す。
void insertText(String, int)
指定された位置に指定されたテキストを挿入する。
void replaceText(String, int, int)
指示された開始位置 (最初の整数) から指示された終了位置までテキストを置換する。


Previous | Next | Trail Map | Creating a User Interface | GUI の構成ブロックであるコンポーネントを使用する