AWT: 次世代
最終更新日: 1997 年 4 月 21 日
Abstract Window Toolkit (AWT) は、Java プログラム用のグラフィカルユーザインタフェース (GUI) の構築を担当する API です。AWT は、Java プラットフォームのなかでも見た目がよく重要なものです。Java ソフトウェアは、AWT が Java プラットフォーム上で、革新的で競争力のある製品を構築する開発者の増え続ける需要を満たすことを目標としています。
1.0 の AWT は、非常に単純な Java アプレットに対して GUI を構築するように設計されていました。AWT は、さらに強力で複雑な GUI 開発のフレームワークを提供する方向に移行する必要があります。現在取り組んでいるのは、Java Foundation Class (JFC) と呼ばれる、次世代の AWT です。JFC は、来年に入っても段階的に展開され続ける予定です。
JFC では、かなり大きなアーキテクチャの拡張を含め、AWT への多くの変更および追加が行われる予定です。開発者は、現在の 1.0 プラットフォームの枠を越え、将来の方向性を見定めようとしています。そこで、このドキュメントでは、目指す方向に関するレベルの高い情報を提供しています。JFC でのアップデートの詳細については、java.sun.com Web サイトを参照することをお勧めします。
概要
AWT のピアモデルは、コンポーネントの Look & Feel の基礎となる「ピア」クラスのセットに委譲することによって、真にネイティブな Look & Feel を提供することを唯一の目的として設計されました。各プラットフォームは、ネイティブシステムのウィジェットをラップするために、異なるピアクラスのセットを持っています。この設計は意図した目標に対してよく機能する一方、次のような多くの欠陥がありました。
- コンポーネントの外観を変更することが難しい
- ネイティブウィジェットは、プラットフォームによってわずかに異なる動作をする。このため一貫性がなくなり、 AWT は複雑な論理でこれを緩和するようにする必要がある
- ピアモデルは共通の Look & Feel のオプションを提供していない
現在、AWT UI コンポーネントの「ピアなし」バージョンを提供することに取り組んでいます。このコンポーネントは、コンポーネントの「Swing」セットと呼ばれ、JDK 1.1 の Beta 3 バージョンで導入された Lightweight UI Framework に基づいています。既存の AWT コンポーネントのピアなしバージョンに加えて、このセットでは、高度なコンポーネントの配列 (TreeView、StyledText、TableView など) が豊富に導入される予定です。これは、コアツールキットにこれらのコンポーネントが含まれることを期待する開発者の意見が多かったためです。Swing API のさらに詳しい情報については、Swing の概要のドキュメントを参照してください。
デフォルトでは、1.0 AWT は実行される特定のプラットフォームに適合した、実行時に決定されるネイティブな Look & Feel (見た目と使い心地) を提供します。Look & Feel は真にネイティブなため、プラットフォームによって変わります。大きな組織ほど、プラットフォームを越えた共通の Look & Feel を選択するオプションを必要としているようです。これを実現するための適切な方法は、Look & Feel を「プラグイン可能」にすることです。これは、コンポーネントのデフォルトの Look & Feel が、Look & Feel オブジェクトおよびレンダリング関数の別個のセットに委譲されることを意味します。このアーキテクチャの基準では、Look & Feel のカスタマイズを次の 3 つのレベルで可能にします。
- 別個の Look & Feel 実装を提供して、Look & Feel 全体を完全に置き換える
- デフォルトの Look & Feel 部分をカスタマイズし、コンポーネントを越えた一貫した修正を提供する (たとえば、境界の影の深さを変更する)
- 個別のコンポーネントサブクラスだけの Look & Feel をカスタマイズする
これはすべて Java に実装され、必要なフックのすべてがコンポーネントの簡単な拡張を可能にするために提供されるという点で、今日のピアモデルと異なることに注意してください。新しい Swing コンポーネントはすべて、このプラグイン可能な Look & Feel アーキテクチャに基づいています。
ドラッグ&ドロップは、もっとも近代的なインタフェースで期待される機能となっています。現在一般的なデータ転送アーキテクチャに取り組んでいますが、その最上層にはクリップボードおよびドラッグ&ドロップの API が構築されます。このデータ転送機構をクリップボード API とともに JDK 1.1 に導入し、次のバージョンでドラッグ&ドロップ API を提供します。詳細については、データ転送設計ドキュメントを参照してください。
1.0 JDK のグラフィックスモデルは、基本的なレンダリング機能だけを提供しました。グラフィック的に豊かなレンダリングとビジュアル効果をさらに提供する必要を認識しています。主なパートナーと共同して、AWT に基礎を置き、劇的にその機能を拡張する新しい Java 2D API に取り組んでいます。この API は任意の変形 (回転、スケーリングなど)、イメージ合成、洗練されたテキスト処理などをサポートする複雑なレンダリングを提供します。この API のさらに詳しい情報については、Java2D のホームページを参照してください。
- Copyright © 1996,1997 Sun Microsystems, Inc.
- Send feedback to:
java-awt@java.sun.com