156 votes

Application Java Desktop : SWT vs Swing

Je suis un développeur web à jour et la réflexion sur la construction de ma première véritable application de bureau. L'idée est de construire un outil qui automatise une très répétitif des tâches dans une application web où aucune API n'est disponible.

Je sais que je veux utiliser Java. Je l'ai utilisé avant pour les contenus du web, connaître la syntaxe assez bien et souhaitez que l'application à la croix-plattform aussi facile que possible.

Où je ne suis pas sûr si je devrais utiliser SWT ou Swing. Mon principal public utilise Windows, j'ai envie de regarder en tant que natif que possible. Linux et Mac devrait fonctionner, mais les regards ne sont pas si important ici.

Alors, quels sont les arguments pour et contre chaque Framework d'INTERFACE, Swing ou SWT?

Merci.

PS: je développe sous Windows à l'aide d'Eclipse. Mais la réflexion sur la lecture avec Netbeans.

151voto

josefx Points 8417

Les Pros De Swing:

  • une partie de la bibliothèque java, pas besoin de supplémentaires bibliothèques natives
  • fonctionne de la même manière sur toutes les plateformes
  • Intégré de l'Éditeur de l'interface de Netbeans et Eclipse
  • bon tutoriels en ligne par Sun/Oracle
  • Pris en charge par l'officiel des extensions java (comme java, OpenGL)

Les Inconvénients De Swing:

  • Natif de regarder et se sentir peut avoir un comportement différente de la vraie natif système.
  • les composants lourds (natif/awt) masquer les composants swing, pas un problème, la plupart du temps, comme l'utilisation de composés lourds est plutôt rare

Pros SWT:

  • utilisant les éléments lorsque cela est possible, il faut donc toujours natif de comportement
  • pris en charge par l'éclipse, l'éditeur de l'interface VEP (PEV soutient également Swing et AWT)
  • de nombreux exemples en ligne
  • a intégré awt/swt pont pour permettre l'utilisation de awt et swing components

Contre SWT:

  • nécessite des bibliothèques pour chaque système pris en charge
  • peut pas en charge tous les comportement sur tous les systèmes en raison de maternelle les ressources utilisées (indice options)
  • la gestion des ressources autochtones, tandis que les composants natifs souvent être éliminés avec un de leurs parents à d'autres ressources telles que les Polices doivent être manuellement publié ou enregistré comme jeter auditeur d'un composant pour un déclenchement automatique.

63voto

Ludovico Fischer Points 1190

Une chose importante à considérer est que certains utilisateurs et de quelques revendeurs (Dell) installer une version 64 bits de VM sur 64 bits de Windows, et vous ne pouvez pas utiliser la même SWT bibliothèque sur 32 bits et 64 bits des machines virtuelles.

Cela signifie que vous aurez besoin de distribuer et de tester des paquets différents selon que les utilisateurs ont 32 bits ou une version 64 bits de Java VM. Voir ce problème avec Azureus, par exemple, mais vous avez aussi avec Eclipse, où dès aujourd'hui s'appuie sur la front page de téléchargement ne fonctionnent pas sur un 64 bits VM.

23voto

Karussell Points 7034

pro swing:

  • Le plus grand avantage de swing à mon humble avis, c'est que vous n'avez pas besoin d'expédier les bibliothèques de l'application (ce qui évite la dizaine de MO(!)).
  • Une interface Native est beaucoup mieux pour le swing que dans le début des années
  • les performances sont comparables à swt (swing n'est pas lent!)
  • NetBeans offre Matisse, un confortable générateur de composants.
  • L'intégration des composants Swing dans JavaFX est plus facile.

Mais à la ligne en bas, je ne dirais pas utiliser "pure" swing ou swt ;-) Il existe plusieurs frameworks d'applications pour le swing/swt. Regardez ici. Les plus grands joueurs sont netbeans (swing) et eclipse (swt). Encore un joli cadre pourrait être griffon et un beau jeu de composants " est le pivot (balançoire). Griffon est très intéressant car il intègre beaucoup de bibliothèques et pas seulement swing; également pivot, swt, etc

13voto

clartaq Points 2485

Je voudrais utiliser Swing pour un couple de raisons.

  • Il a été autour de plus et a eu plus l'effort de développement appliqué à c'. Il est donc probable plus de fonctionnalité complet et (peut-être) a moins de bugs.

  • Il y a beaucoup de documentation et d'autres conseils sur la production de performant applications.

  • Il semble comme les changements de Swing se propager à toutes les plates-formes en même temps lors de les changements de SWT semblent apparaître sur Windows, puis Linux.

Si vous voulez construire une très riche en fonctionnalités de l'application, vous voudrez peut-être consulter le NetBeans RCP (Rich Client Platform). Il y a une courbe d'apprentissage, mais vous pouvez mettre ensemble, de nice rapidement des applications avec un peu de pratique. Je n'ai pas assez d'expérience avec la plate-forme Eclipse pour faire un jugement valable.

Si vous ne souhaitez pas utiliser la totalité de la RCP, NetBeans a aussi beaucoup de composants utiles qui peuvent en être extraites et utilisées de manière indépendante.

Un autre petit conseil, regardez dans les différents gestionnaires de disposition. Ils disparaissent moi il y a longtemps, quand j'étais à l'apprentissage. Certains des meilleurs ne sont même pas dans la bibliothèque standard. Le MigLayout (pour à la fois Swing et SWT) et JGoodies outils sont deux des meilleurs à mon avis.

10voto

zeroed Points 356

Je choisirais le swing juste parce que c'est "natif" pour java.

De plus, consultez http://swingx.java.net/ .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X