Sun の管理ミスにもかかわらず、Swing は依然として優れたフレームワークであると思います。特にその「ロット」にカスタム レンダリングされた UI コントロールが含まれる場合は、これで多くのことができます。アプリケーションでブランド化された LAF が必要な場合、またはあちこちにいくつかの複雑なカスタム コントロールが必要な場合でも、Swing はまさに必要なものです。
コインの反対側では、私は SWT がかなり好きです。誰もが Java を引き継ぐのは IBM の策略だと思っていたので、評判は悪くなりますが、実際には Swing を完全に補完するもう 1 つの UI フレームワークにすぎません。超複雑なグラフィックスのレンダリング (具体的には合成) や、非常に重要なカスタム コントロールの作成に SWT を使用することはお勧めしませんが、それ以外の場合は非常に便利です。API 自体は、ビット マスクへの依存やユーザー管理のイベント ディスパッチ ループなどの理由で多くの批判を受けますが、これらのほとんどは慣れればかなり透過的です。コンポーネント自体は (拡張性などの点で) Swing のものよりもはるかに単純です。つまり、API はそれに比例して単純になります。SWT でテーブルを作成してデータを入力する方法を実際に覚えています。Google の支援なしに Swing でそれを処理したことはありません。
現在の SWT の最大の問題は、安定版が Mac OS X の Carbon に依存していることです。これは、SWT アプリが Java 5 で 32 ビット (または SoyLatte で 32 ビット) しか実行できないことを意味します。他のプラットフォームに関しては、SWT は Windows (Vista および XP) で驚異的であり、GTK Linux でもほぼ同等です。私は (最近では) Linux 上の SWT で問題が発生したことはありません。
質問に戻りますが、それはすべて、アプリケーションが必要とするものによって異なります。それが大量のカスタム コントロールと複雑な合成を備えた派手なカスタム スタイルのアプリケーションである場合、Swing は町で唯一のゲームです。ただし、より単純な API の方が重要な場合、またはユーザーがプラットフォーム LAF の究極の忠実度を要求する場合は、SWT が最適です。