Abstract Window Toolkit
しかしながら、アプリケーション開発者の中には、全てのプラットフォーム上で開発したアプリケーションが厳密に同じ外観であることを好むため、このモデルを嫌う者もいた。
J2SE 1.2では、SwingツールキットがAWTのウィジェットの大部分に取って代わった。よりリッチなUIウィジェットの集合を提供することに加えて、Swingは、OSの高レベルユーザインタフェースモジュールに依存するのではなく、(ローカルのグラフィックスサブシステムにおける低レベルのサブルーチンを呼び出すJava 2Dを使用した) 独自のウィジェットを描画する。Swingはアプリケーションのために、ネイティブのルック・アンド・フィール、またはすべてのウィンドウシステム上で同じ外観を持つクロスプラットフォームなルック・アンド・フィール (Java Look and Feel) を使用するオプションを提供する。
AWTはGUIイベントサブシステムとネイティブなウィンドウシステムと、Swingが頼る構造的な土台を提供するJavaアプリケーションとの間のインタフェースの中核の提供を継続する。 それは、サポートシステム上でシステムトレイにアクセスできるだけでなく、様々な基本レイアウトマネージャ、クリップボードやドラッグ・アンド・ドロップを使用するデータ転送パッケージ、マウスやキーボードのような入力デバイスインタフェースをも提供する。