awt(abstract window toolkit)は、JDKの胴体あるいは手足にたとえるべき存在です。
事実 awt は JDKで最も大きなパッケージです。
このパッケージを通じてプログラマーは、ウィンドウ・システム
のオブジェトを利用し、グラフィックのコントロールやイベントの処理を実現します。
正確に言えば、このパッケージ自身はウィンドウ・システムの
ライブラリではありません。
それぞれのマシンのウィンドウシステム
(X-Window、Windows、MacOSなど)
へのインターフェイスを提供するのが、このパッケージの役割です。
このパッケージによって開発されたアプリケーションは、
特定のウィンドウ・システムに縛られません。
しかし見かけの上でのプログラミング内の取り扱いは、
直接ウィンドウ・オブジェクトを操作している場合と変わりはありません。
しかも、従来のウィンドウ・プログラミングよりもはるかに
簡単な記述で必要な機能を呼び出すことができます。
このパッケージには
含まれるクラスの数も多いので、いくつかのグループに分けて紹介しましょう。
Graphics は、グラフィックの表示に必要となる情報、
グラフィックを操作する手段を提供するクラスです。
Colorは色の情報や色のデータを操作する手段を提供します。
Imageは画像をプログラム内でオブジェクトとして扱うためのクラスです。
Fontは文字のサイズや形態を与えるクラス、FontMetrics は特定の Font に
おける文字及び文字列のサイズを計算する手段を提供します。
これらの基本的なクラスを通じてグラフィックの表示は実現されます。
Pointは (x,y)の座標、
Dimensionは width,height のサイズを表すクラスです。
Point, Dimension とも JDK1.02では二次元のデータです。
Rectangleは矩形の領域を表すクラス、Polygonは多角形の領域を表すクラスです。
これらのクラスは、メソッドへの引数や返値として、
あるいはもっと複雑なクラスを設計するためにも用いられます。
Eventクラスのオブジェクトには、イベントに関する情報 (イベントの種類、イベントの発生したオブジェクト、 イベントの発生した時刻など)が記憶されています。 このクラスのオブジェクトはアプレットの外部から渡されるもので、 プログラムの中で生成することはありません。 イベントを扱うメソッドに引数として渡されます。 多くのイベント処理では、Eventクラスのデータは形式的に 渡されるだけで、特に利用されることはありません。 むしろ、それが普通だと思ってください。 イベントの配送先のオブジェクトやイベントの種類の識別などは、 メソッドに渡された段階で既に処理が終わっていることが多いからです。
*以上のクラスが、ウィンドウ・システムを扱うための一番の基本です。 以下のクラスは、ウィンドウオブジェクトやインターフェイスのための部品を 提供するクラスです。
これらのクラスは、プログラムの内部で直接使うことはありません。 しかし、他のウィンドウ・オブジェクトに共通する性質を 定義する大切な役割を持っています。
ボタンや選択メニューなどの機能を提供する部品です。 これらはすべて Component のサブ・クラスで、 アプレットの内部に配置することができます。 Panel は Container のサブ・クラスでもあり、 他のオブジェクトを内部に配置することができます。 TextField 及び TextArea の2つは、TextComponent のサブ・クラスでもあります。
これは Image などのメディアのオブジェクトを内部にデータとして保持 することが可能なクラスです。
これらは、実際に目に見えるオブジェクトではありません。 レイアウトのルールやポリシーを決め、 レイアウトをコントロールする手段を与えます。
これらは、ポップアップ・メニューを作成するためのクラスです。
ユーザー・インターフェイスのためにある部品ですが、 独立したウィンドウになります。 アプレットやその内部のオブジェクトのようにビューワに表示されるわけでは ありません。 Window が「裸の状態」のウィンドウを生成するのに対して、 Frame はタイトルバーなどの枠が付いて表示されるなど、 ウィンドウ・システムとのインターフェイスの機能を持ちます。 Dialog および FileDialog にはプッシュボタン、リスト・アイテムなど の付属の部品を内部に含む半ば特殊化されたクラスです。