Je ne suis pas du tout d'accord avec la réponse d'Aaron Digulla. en ce qui concerne le Swing .
J'ai trouvé que Swing n'était pas la meilleure conception et qu'elle était un peu alambiquée, mais qu'elle était raisonnablement simple et utilisable, et qu'en fin de compte tout à fait bien pensé. De plus, il est certain es capable de ce qui est requis pour presque toutes les applications GUI.
En utilisant le LAF natif, l'application ressemblera et fonctionnera suffisamment comme une application native pour recevoir une note de passage (IMO).
Pour ce qui est de la partie sur les mises en page... c'est... vrai que les mises en page Swing sont un peu difficiles à utiliser et nécessitent des imbrications (parfois assez nombreuses) pour obtenir les résultats souhaités, mais le concept des mises en page est l'un des meilleurs aspects des interfaces graphiques en Java. Prenez le temps de comprendre ce qu'ils font pour vous. et procurez-vous une bonne mise en page basée sur des tableaux (par ex. MatrixLayout TableLayout, JGoodies FormLayout ou MigLayout) qui éliminera 99 % des imbrications. Une mise en page basée sur des tableaux simplifiera également votre interface graphique et fera en sorte que le code reflète mieux le résultat visuel final.
Donc, mon conseil est que si QT fait les choses d'une manière que vous préférez ou fournit des fonctionnalités que Swing n'offre pas, alors, par tous les moyens, examinez-le. fourni par que vous êtes satisfait de la distribution de ses composants Java et natifs avec votre application, et qu'il cible les plates-formes sur lesquelles vous voulez fonctionner (ou pourriez vouloir fonctionner à l'avenir).
Sinon, il est difficile de battre la flexibilité de Swing, le fait qu'il soit intégré dans chaque installation Java et sa capacité à personnaliser facilement l'apparence et le comportement.
Oh, et pour être juste, je n'ai pas regardé QT avant - Mais j'ai environ 6 10 ans de développement actif de Swing et AWT, comprenant 1 application AWT déployée commercialement et 3 applications Swing (non triviales), plus un certain nombre d'applications Swing personnelles. Ce qui est peut-être plus important, c'est que j'ai mis en œuvre une boîte à outils d'interface graphique légère entièrement fonctionnelle au-dessus d'AWT, très analogue à Swing mais avec une architecture de composants et d'événements complètement différente, qui a été déployée avec succès dans le commerce.