Je ne peux que répondre de ce qui a fonctionné pour moi. D'autres commentateurs ont souligné que les interfaces graphiques Java en général tombent dans la «vallée étrange» de l'apparence pas tout à fait native, et je ne conteste pas cela.
Faites bon usage de l'API Action. Il vous permet de mieux encapsuler les différentes actions que votre utilisateur effectuera et vous permet de les connecter aux raccourcis, touches accélératrices, boutons et autres objets d'entrée beaucoup plus facilement.
Utilisez un gestionnaire de mise en page approprié. GridBagLayout est extrêmement puissant, mais j'irais jusqu'à dire qu'il est impossible à maintenir sans une quantité excessive de commentaires. Lorsque j'exécute des outils d'analyse de code statique tels que Sonar sur une ancienne application graphique que je maintiens, cela souligne toujours les quantités massives de nombres magiques pour rendre la mise en page GridBags parfaite. J'ai eu beaucoup de succès avec GroupLayout, ce qui évite d'avoir à spécifier un alignement parfait au pixel près.
Si vous pensez avoir besoin d'un JDialog ... vous n'en avez probablement pas. Les boîtes de dialogue sont horribles, en termes d'expérience utilisateur - cette application a décidé de les utiliser pour chaque menu et formulaire, et d'appliquer des règles toujours au top de manière bizarre. Cela s'est transformé en cauchemar de maintenance alors que nous avions effectivement besoin d'alerter quelque chose sur le menu. Cue frustré de cliquer sur des dialogues non focalisés - et donc indissociables -.
Utilisez SwingWorker au lieu de lancer votre propre multithreading, le cas échéant. Il est très facile d'étendre SwingWorker et d'effectuer des tâches de longue durée tout en fournissant des mises à jour régulières à l'interface graphique. Pensez à télécharger une mise à jour client. Il gérera la planification des threads de travail pour vous et vous permettra de publier des pourcentages de téléchargement dans la vue, afin que vous puissiez mettre à jour votre barre de progression ou ce que vous avez.
C'est tout ce que je peux suggérer, dans mon expérience certes limitée.