awtコンポーネント

awtコンポーネントをアプレットに組み込む方法を説明します。


awtコンポーネントとは、ボタンやテキスト入力用のアイテムのように ユーザー・インターフェイスのための部品のクラスです。 (Xウィンドウのツール・キットやTCL/TK を知っている人ならば お馴染みのものです。) これらの部品を利用すれば、 アプレットの開発の効率が格段に向上します。
 awtコンポーネントのクラスは、 独自のパッケージを構成する Appletを除いて、 awtパッケージの中にまとめられています。 このパッケージには Graphics や Image などグラフィック関連の重要な クラスも含まれていますが、 コンポーネントのクラスは全て Componentクラスを先祖とします。
Component のサブ・クラスは大まかに2種類に分類できます。 直接インターフェイスを担当する部品となるクラス(Button など)と、 それらをレイアウトする土台の役割をするクラス (Panel や Appletが典型例)です。 この土台となるクラスは Component のサブ・クラス Container を先祖とします。
 実は Applet クラスも、それ自身が awtコンポーネントである Panel クラスの サブ・クラスとして実現されています。 Panel は内部に awtコンポーネントを配置する機能を備えたクラスです。 Applet も(そして、それを拡張したサブ・クラスでも) 内部に awtコンポーネントを置くことができるわけです。

実際のプログラムで見てみましょう。 ボタンやテキスト入力のアイテムを内部に含むアプレットの例です。 (以下の例では表示されるだけです。特定の処理に結びついてはいない点に注意)


import java.awt.*;
import java.applet.Applet;

/** awtコンポーネントを含むアプレット TestPanel クラス */

public class TestPanel extends Applet {

   /** ユーザーインターフェイスの部品の宣言 */

      public Button button;
      public TextField textFild;

   /** 初期設定の処理 */

      public void init() {

          button = new Button("Push!");  // プッシュボタンを生成
          add( button );                 // プッシュボタンを配置
          textField = new TextField(32); // 入力アイテムを生成
          add( textField );              // 入力アイテムを配置
      }
}


 awtコンポーネントの生成は、それぞれのクラスのコンストラクタを 呼び出すだけです。 引数の与え方はクラスによって異なり、同じクラスのオブジェクトでも 一通りに限定されてはいないのが普通です。 典型的な例を挙げると、上のように Button ならラベルの文字列を 表す Stringクラスのオブジェクトを、 TextField ならコラム数(表示できる文字数)を表す int 型の数値 を与えることができます。 部品のサイズなどは与えられたデータを基に自動的に調整されます。
 生成されたコンポーネントは add() でアプレット内に 追加され、自動的にレイアウトされます。 また、Panelクラスも Componentクラスのサブ・クラスです。 したがって、アプレットの中に Panelクラスのオブジェクトを レイアウトすることで、階層的な構造を何重にも作ることが可能です。 多数の部品をグループごとに分けてきれいにレイアウトしたい時に 有効な方法です。

インターフェイスの部品となるComponentのサブ・クラス
クラス名 機能
Button プッシュ・ボタン
Canvas 描画可能な領域
CheckBox 単独でトグル・ボタン
グループ化して選択ボタン
Choice メニュー・ボタン
Label 文字列を表示する
List スクローリング・リスト
TextArea 複数行のキー入力アイテム
TextField キー入力アイテム