アプレットの概説 |
Simple アプレットのディスプレイコード (paint()
メソッドに実装さ れている) には欠陥がある。これはスクロールをサポートしていない。つまり、ディ スプレイコードの表示するテキストが矩形の末尾に到達すると、それ以上のテキスト が表示されなくなるのである。この問題の例を次に示す。この問題の最も簡単な解決法は、適切に動作する、あらかじめ用意されたユーザイン タフェース (UI) コンポーネントを使用することである。
注: このページではさまざまな細かい内容についてざっと説明する。UI コンポーネント の使用法をよく理解するには、ユーザインタフェースを作成するを参照するこ と。
あらかじめ用意された UI コンポーネント
AWT は以下に示す UI コンポーネントを用意している (丸括弧の中に、各コンポーネ ントを実装するクラスを示す)。
- ボタン (java.awt.Button)
- チェックボックス (java.awt.Checkbox)
- 単一行のテキストフィールド (java.awt.TextField)
- 大きなテキスト表示と編集エリア (java.awt.TextArea)
- ラベル (java.awt.Label)
- リスト (java.awt.List)
- 選択用ポップアップリスト (java.awt.Choice)
- スライダとスクロールバー (java.awt.Scrollbar)
- 描画領域 (java.awt.Canvas)
- メニュー (java.awt.Menu、java.awt.MenuItem、 java.awt.CheckboxMenuItem)
- コンテナ (java.awt.Panel、java.awt.Window とそのサブクラス)
アプレットで 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() メソッドは不要になる
アプレットの概説 |