Jonas,
Swing verallgemeinert Ihre zugrunde liegende Architektur, um Ihnen eine plattformneutrale Benutzererfahrung zu bieten. Die einzige Schwergewichtskomponente (vom Betriebssystem bereitgestellt) ist der JFrame-Container, und der Rest wird so ziemlich vom Swing-Takedit übernommen. AWT hingegen fordert das Betriebssystem auf, alle UI-Komponenten zu zeichnen, was bedeutet, dass es in vielerlei Hinsicht schneller ist, als wenn Sie die systemeigenen UI-Komponenten verwenden. SWT versucht, einen Mittelweg zu finden. Für verschiedene Standardkomponenten wie Schaltflächen und Beschriftungen (die auf den meisten Betriebssystemen verfügbar sind) kann das Betriebssystem mit diesen umgehen, und für andere spezialisierte Komponenten übernimmt SWT die Erstellung für Sie.
Trotzdem kann ich die Nachteile skizzieren.
(1) Da das Toolkit die Komponenten für Sie erstellt und rendert, anstatt das Betriebssystem zu fragen, können Sie die Geschwindigkeit der vom Betriebssystem bereitgestellten integrierten Komponenten nicht nutzen.
(2) Die Benutzeroberfläche ist nicht besonders aufdringlich, da sie den meisten Betriebssystemplattformen in Bezug auf das von Ihnen verwendete Erscheinungsbild fremd erscheint.
(3) Einige der Layout-Manager, z. B. GridBadLayout usw., könnten besser vereinfacht werden. Ich habe die Anzahl der Projekte verloren, an denen ich gearbeitet habe, bei denen Leute das GridBagLayout in einen maßgeschneiderten Code verpackt haben, um eine einfachere Verwendung zu erhalten.
Ich würde Ihnen raten, eine einfache App in AWT, Swing und SWT zu schreiben und die Entwicklungsansätze und das Endprodukt zwischen allen zu vergleichen. Überprüfen Sie dann die verschiedenen Kommentare anderer Entwickler und entscheiden Sie, welche am besten funktioniert. Ich habe viele Jahre mit Swing gearbeitet und SWT nicht gemocht, aber mir wurde klar, dass Swing im Vergleich zu anderen Frameworks viel komplizierter ist, als es sein muss.