AWT: 次世代
最終更新: 1997 年 1 月 31 日
Abstract Window Toolkit (AWT) は、Java プログラム用のグラフィカルユーザインタフェース (GUI) 構築に責任を持つ API です。AWT が Java プラットフォームのうちで最も見た目がよく重要なものの 1 つなのは明らかです。JavaSoft の目標は、AWT が Java プラットフォームに対して、革新的で競争力のある製品を構築する開発者の増大し続ける需要を確実に満たすことです。
1.0の AWT は、かなり単純な Java アプレットに対して GUI を構築するように設計されていました。AWT が、もっと強力で複雑な GUI 開発のフレームワークを提供する方向に移行する必要があるのは明白です。この移行は大変な作業であり、段階を追って取り組んでいます。JDK 1.1 の AWT はこの開発の第 1 段階です。
現在第 2 段階に取り組んでいます。この段階はまだ JavaSoft 製品を公表する段階ではありませんが、1997 年にはリリース (多分この段階で) できると予測しています。この段階では、かなり大きなアーキテクチャの拡張を含め、AWT への多数の画期的な変更が行われるでしょう。開発者集団は、現行の 1.0 プラットフォームの包囲を押し開き、将来方向を理解しようと熱望しています。そこで、このドキュメントでは、目指す方向に関する高いレベルの情報を提供します。
注:
我々は計画を変更する権利を留保します。
次の段階のハイライトのサマリ...
AWT のピアモデルは、コンポーネントの外観と感触の基礎となる「ピア」クラスのセットに delegate することによって、真にネイティブな外観と感触を提供することを唯一の目的として設計されました。各プラットフォームは、ネイティブシステムのウィジットをラップするために、異なるピアクラスのセットを持っています。この設計は意図した目標に対してよく機能する一方、次のような多くの欠陥がありました:
- コンポーネントの外観を変更することが難しい。
- ネイティブウィジットは、プラットフォームによってわずかに異なる動作をする。このため一貫性がなくなり、 AWT は複雑な論理でこれを緩和するようにする必要がある。
- ピアモデルは共通の外観と感触のオプションを提供してない。
現在、 AWT UI コンポーネントの「ピア無し」バージョンを提供することに取り組んでいます
。このコンポーネントは、JDK1.1 のベータ 3 バージョンで導入された軽量 UI フレームワークに基づいています。これらのピア無しコンポーネントは一般的な Java コードに 100% 実装されています。真にネイティブの外観と感触を要求 (希望) する方々に、ピア有りオプションを提供し続けます。しかし、ピア無しオプションは、プラットフォームを超えた共通の外観と感触を選択し、コンポーネントの外観を簡単に変更したい方々のために存在します。
現在の AWT は非常に基本的な UI コントロール (Button、Choice など) を提供しますが、近代的な GUI がもっと洗練されたコントロール (TreeView、Table など) を頻繁に要求することは明らかです。多くの素晴らしいコントロールが、AWT の Java バージョンを構築しているサードパーティベンダーから提供され利用可能になっていますが、AWTがもっと豊富なセットを提供する必要性を常に耳にしています!
TreeView、Table、Styled-text などのコンポーネントを含む、もっと一般的なコントロール (軽量UIフレームワークアーキテクチャに基づく)を提供するように取り組んでいます....いつも注意していてください!
デフォルトでは、1.0 AWT は実行されている特定のプラットフォームに適合した、実行時に決定されるネイティブな外観と感触を提供します。外観と感触は真にネイティブなため、プラットフォームによって変わります。大きなコミュニティほど、プラットフォームを超えた共通の外観と感触を選択するオプションを欲しているようです。これを実現する正しい方法は、外観と感触を「プラグ可能」にすることです。これは、コンポーネントのデフォルトの外観と感触が、外観と感触オブジェクトおよびレンダリング関数の別個のセットに delegate されることを意味します。このアーキテクチャの基準では、外観と感触のカスタマイゼーションを次の 3 つのレベルで可能にします:
- 別個の外観と感触実装を提供して、完全に外観と感触全体を置き換える。
- デフォルトの外観と感触部分をカスタマイズし、コンポーネントを超えた一貫した修正を提供する(例えば、境界の影の深さを変更する)。
- 個別のコンポーネントサブクラスだけの外観と感触をカスタマイズする。
これはすべて Java に実装され、必要なフックのすべてがコンポーネントの簡単な拡張を可能にするために提供されるという点で、今日のピアモデルと異なることに注意してください。
ドラッグとドロップは、今日最も近代的なインタフェースで期待される機能となっています。現在一般的なデータ転送アーキテクチャに取り組んでいますが、その 1 番上にはクリップボードおよびドラッグとドロップの API が構築されます。このデータ転送機構をクリップボード API と共に JDK1.1 に導入し、次のバージョンでドラッグとドロップ API を提供します。詳細については、
データ転送設計ドキュメントを参照してください。
1.0 JDK のグラフィックスモデルは、基本的なレンダリング機能だけを提供しました。もっ
とグラフィック的に豊かなレンダリングとビジュアル効果を提供する必要を認識しています。主なパートナーと共同して、AWT に基礎を置き、劇的にその機能を拡張する新しい Java 2D API に取り組んでいます。この API は任意の変形(回転、スケーリングなど)、イメージ合成、洗練されたテキスト処理などをサポートする複雑なレンダリングを提供します。
- Copyright (C) 1996,1997 Sun Microsystems, Inc.
-
フィードバックは java-awt@java.sun.com 宛てに送ってください。