Jonas,
Swing uogólnia architekturę bazową, aby zapewnić użytkownikom neutralne dla platformy wrażenia. Jedynym ciężkim komponentem (dostarczanym przez system operacyjny) jest kontener JFrame, a resztą zajmuje się Swit takeit. Z drugiej strony AWT prosi system operacyjny o narysowanie wszystkich składników interfejsu użytkownika, co oznacza, że jest szybszy na wiele sposobów, niż przy użyciu natywnych składników interfejsu użytkownika specyficznych dla systemu operacyjnego. SWT stara się osiągnąć środek, dla różnych standardowych komponentów, takich jak przyciski i etykiety (które są dostępne w większości systemów operacyjnych), pozwala systemowi operacyjnemu sobie z nimi poradzić, a dla innych specjalistycznych komponentów SWT zajmie się tworzeniem dla ciebie.
To powiedziawszy, mogę nakreślić wady.
(1) Ponieważ zestaw narzędzi tworzy i renderuje komponenty dla ciebie, zamiast pytać system operacyjny, nie możesz skorzystać z szybkości wbudowanych komponentów zapewnianych przez system operacyjny.
(2) Interfejs użytkownika nie jest szczególnie atrakcyjny, ponieważ wydaje się być obcy dla większości platform OS pod względem wyglądu i sposobu użytkowania.
(3) Niektóre z menedżerów układu, np. GridBadLayout itp., Mogłyby być lepiej uproszczone. Straciłem rachubę liczby projektów, nad którymi pracowałem, w których ludzie otoczyli GridBagLayout jakimś niestandardowym kodem, aby uzyskać prostszy sposób korzystania z niego.
Radzę napisać prostą aplikację w AWT, Swing i SWT i porównać podejścia programistyczne do końcowego produktu między nimi wszystkimi, a następnie przejrzeć różne komentarze innych programistów i zdecydować, który z nich będzie najlepszy. Pracuję z Swingiem od wielu lat i nie lubiłem SWT, ale zdałem sobie sprawę, że Swing jest o wiele bardziej skomplikowany, niż powinien być w porównaniu z innymi platformami.