Abstract Window Toolkit

Abstract Window Toolkit (AWT) とは、Javaの独自のプラットフォーム非依存なウィンドウシステム、グラフィックス、ユーザインタフェース (UI)、ウィジェット・ツールキットのことである。AWTは現在はJava Foundation Classes (JFC) に含まれ、Javaプログラム用グラフィカルユーザインタフェース (GUI) を提供する標準APIの一部となっている。
サン・マイクロシステムズは1995年にJavaを最初にリリースしたとき、AWTは、下層のネイティブなユーザインタフェース上に薄い抽象化レベルを提供した。例えば、AWTのチェックボックスを作成する際、AWTはチェックボックスを作成する下層のネイティブサブルーチンを直接呼び出していた。しかしながら、Microsoft Windowsのチェックボックスは、Mac OSや様々なUNIX互換OSにおけるチェックボックスとは厳密には同じではなかった。下層のネイティブなウィンドウツールキットに高度に忠実で、ネイティブなアプリケーションとのシームレスな統合を提供することから、アプリケーション開発者の中にはこのモデルを好む者もいる。言い換えれば、AWTを使って書かれたGUIプログラムは、Windows上で動作するときはネイティブなWindowsアプリケーションのような外観になるが、Mac上で動作するときはネイティブなApple Macintoshアプリケーションのような外観になる、などということである。しかしながら、アプリケーション開発者の中には、全てのプラットフォーム上で開発したアプリケーションが厳密に同じ外観であることを好むため、このモデルを嫌う者もいた。
J2SE 1.2では、SwingツールキットがAWTのウィジェットの大部分に取って代わった。よりリッチなUIウィジェットの集合を提供することに加えて、Swingは、OSの高レベルユーザインタフェースモジュールに依存するのではなく、(ローカルのグラフィックスサブシステムにおける低レベルのサブルーチンを呼び出すJava 2Dを使用した) 独自のウィジェットを描画する。Swingはアプリケーションのために、ネイティブのルック・アンド・フィール、またはすべてのウィンドウシステム上で同じ外観を持つクロスプラットフォームなルック・アンド・フィール (Java Look and Feel) を使用するオプションを提供する。
AWTはGUIイベントサブシステムとネイティブなウィンドウシステムと、Swingが頼る構造的な土台を提供するJavaアプリケーションとの間のインタフェースの中核の提供を継続する。
それは、サポートシステム上でシステムトレイにアクセスできるだけでなく、様々な基本レイアウトマネージャ、クリップボードやドラッグ・アンド・ドロップを使用するデータ転送パッケージ、マウスやキーボードのような入力デバイスインタフェースをも提供する。