Jonas,
Swing généralise votre architecture sous-jacente pour vous offrir une expérience utilisateur neutre sur la plateforme. Le seul composant lourd (fourni par le système d'exploitation) est le conteneur JFrame et le reste est à peu près géré par le Swing takeit. AWT de l'autre côté, demande au système d'exploitation de dessiner tous ses composants d'interface utilisateur, ce qui signifie qu'il est plus rapide à bien des égards que votre utilisation des composants d'interface utilisateur natifs spécifiques au système d'exploitation. SWT essaie de trouver un terrain d'entente, pour divers composants standard comme les boutons et les étiquettes (qui sont disponibles sur la plupart des systèmes d'exploitation), il permet au système d'exploitation de les gérer et pour d'autres composants spécialisés, SWT se chargera de la création pour vous.
Cela dit, je peux souligner les inconvénients.
(1) Étant donné que la boîte à outils crée et rend les composants pour vous plutôt que de demander au système d'exploitation, vous ne bénéficiez pas de la vitesse des composants intégrés fournis par le système d'exploitation.
(2) L'interface utilisateur n'est pas particulièrement attrayante car elle semble étrangère à la plupart des plates-formes de système d'exploitation en ce qui concerne l'apparence que vous utilisez.
(3) Certains des gestionnaires de mise en page, à savoir GridBadLayout, etc. pourraient être mieux simplifiés. J'ai perdu le compte du nombre de projets sur lesquels j'ai travaillé où les gens ont encapsulé le GridBagLayout dans du code sur mesure pour obtenir un moyen plus simple de l'utiliser.
Je vous conseille d'écrire une application simple en AWT, Swing et SWT et de comparer les approches de développement et le produit final entre elles, puis de passer en revue les divers commentaires faits par d'autres développeurs et de décider laquelle fonctionne le mieux. J'ai travaillé avec Swing pendant de nombreuses années et j'ai utilisé le SWT que je n'aime pas, mais je me suis rendu compte que Swing est beaucoup plus compliqué qu'il ne devrait l'être par rapport à d'autres frameworks.