Standard Widget Toolkit
最初のJava用GUIツールキットは、AWT (Abstract Window Toolkit) であり、サンのJava標準の一部としてJDK 1.0 で登場した。AWTは比較的単純であり、OSが提供するネイティブなオブジェクトをJavaコードで包み、メニューやボタンといったGUI部品を生成する。AWTはネイティブウィジェットラッパーとしては非常に薄く、プラットフォーム固有のコードが開発者に透けて見え、バグやOS固有の癖がそのままさらけ出されているため、異なるプラットフォーム間で移植性のあるアプリケーションを作成するには限界があった。
Swingは第二世代のツールキットで、サンがJ2SE 1.2で導入した。AWT よりもオブジェクト指向的である。SwingのGUI部品は 100% Java であり、ネイティブコードは使っていない。ネイティブAPIをラップする代わりに、Swingは低レベルなOSルーチンを使ってGUI部品を自前で描画する。
そのころ、IBMはSmalltalkを使った統合開発環境 (IDE) であるVisualAgeを開発していた。これをオープンソースとして公開することに決め、それがEclipseの開発へと繋がっていった。EclipseはMicrosoft Visual StudioのようなIDEとも競合できるものとすることを目的としていた。EclipseはJavaで書かれており、IBMの開発者らは「ネイティブのルック・アンド・フィール」と「ネイティブの性能」を持ったツールキットが必要と考え、Swingを置換するものとしてSWTを開発した。