Previous | Next | Trail Map | Writing Applets | アプレットの概説


UI コンポーネントを追加するためのメソッド

Simple アプレットのディスプレイコード (paint() メソッドに実装さ れている) には欠陥がある。これはスクロールをサポートしていない。つまり、ディ スプレイコードの表示するテキストが矩形の末尾に到達すると、それ以上のテキスト が表示されなくなるのである。この問題の例を次に示す。

この問題の最も簡単な解決法は、適切に動作する、あらかじめ用意されたユーザイン タフェース (UI) コンポーネントを使用することである。

注: このページではさまざまな細かい内容についてざっと説明する。UI コンポーネント の使用法をよく理解するには、ユーザインタフェースを作成するを参照するこ と。

あらかじめ用意された UI コンポーネント

AWT は以下に示す UI コンポーネントを用意している (丸括弧の中に、各コンポーネ ントを実装するクラスを示す)。

アプレットで UI コンポーネントを使用するためのメソッド

Applet クラスは AWT Container クラスから継承するので、アプレットにコンポーネ ントを追加したり、レイアウトマネージャを使用してコンポーネントのスクリーン上 の位置を制御することは容易である。ここで、アプレットが使用できる Container メソッドをいくつか紹介する。

add()
指定のコンポーネントを追加する。
remove()
指定のコンポーネントを削除する。
setLayout()
レイアウトマネージャをセットする。

Simple アプレットに編集不可能なテキストフィールドを追加する

Simple アプレットが、スクロールできて編集不可能なテキストフィールドを使用するためには、TextField クラスを使用する。変更を加えたソースコードを示す。重要な変更箇所 は次のとおりである。

. . .

//StringBuffer を作成する代わりに TextField を作成する
java.awt.TextField field = new java.awt.TextField(80);

public void init() {
    //TextField を追加した後、表示する
    field.setEditable(false);
    setLayout(new java.awt.GridLayout(1,0));
    add(field);
    validate();
    addItem("initializing... ");
}

. . .

public void addItem(String newWord) {
    //これは文字列を StringBuffer に追加するために使用する
    //ここで文字列を TextField に追加する
    String t = field.getText();
    System.out.println(newWord);
    field.setText(t + newWord);
    repaint();
}

//TextField が自動的にリペイントするため
//paint() メソッドは不要になる

結果のアプレットを以下に示す。


You can't run applets. Here's what you'd see if you could:



Previous | Next | Trail Map | Writing Applets | アプレットの概説