awtコンポーネント

awtコンポーネントのクラスについて説明します。


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

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


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

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

public class Samples 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のサブ・クラス
クラス名 機能
Label 文字列を表示する
Button プッシュ・ボタン
CheckBox 単独でトグル・ボタン
グループ化して選択ボタン
Choice メニュー・ボタン
List スクローリング・リスト
Canvas 描画可能な領域
TextArea 複数行のキー入力アイテム
TextField キー入力アイテム
Scrollbar スクロールバー