Je suis développeur web à la journée et je pense créer ma première vraie application de bureau. L'idée est de construire un outil qui automatise une tâche très répétitive dans une application web où aucune API n'est disponible.
Je sais que je veux utiliser Java. Je l'ai déjà utilisé pour des trucs Web, je connais assez bien la syntaxe et je souhaite que l'application soit multi-plateforme aussi simple que possible.
Là où je ne suis pas si sûr, c'est si je devrais utiliser SWT ou Swing. Étant donné que mon public principal utilise Windows, je souhaite le rendre aussi natif que possible. Linux et Mac devraient fonctionner, mais l'apparence n'est pas si importante ici.
Alors, quels sont les arguments pour et contre chaque UI Framework, Swing ou SWT?
Merci.
PS: je développe sous Windows avec Eclipse. Mais pensait jouer avec Netbeans.
Réponses:
Swing pour les pros:
Contre Swing:
Avantages SWT:
Contre SWT:
la source
Une chose importante à considérer est que certains utilisateurs et certains revendeurs (Dell) installent une machine virtuelle 64 bits sur leur Windows 64 bits, et vous ne pouvez pas utiliser la même bibliothèque SWT sur des machines virtuelles 32 bits et 64 bits.
Cela signifie que vous devrez distribuer et tester différents packages selon que les utilisateurs disposent d'une machine virtuelle Java 32 bits ou 64 bits. Voyez ce problème avec Azureus, par exemple, mais vous l'avez également avec Eclipse, où, à partir d'aujourd'hui, les versions sur la page de téléchargement avant ne fonctionnent pas sur une machine virtuelle 64 bits.
la source
swing pro:
Mais en fin de compte, je ne suggérerais pas d'utiliser swing ou swt «pur» ;-) Il existe plusieurs cadres d'application pour swing / swt out. Regardez ici . Les plus gros joueurs sont netbeans (swing) et eclipse (swt). Un autre cadre agréable pourrait être le griffon et un bel «ensemble de composants» est le pivot (swing). Griffon est très intéressant car il intègre beaucoup de bibliothèques et pas seulement du swing ; aussi pivot, swt, etc.
la source
J'utiliserais Swing pour plusieurs raisons.
Il existe depuis plus longtemps et a fait l'objet de plus d'efforts de développement. Par conséquent, il est probablement plus complet de fonctionnalités et (peut-être) a moins de bogues.
Il existe de nombreux documents et autres conseils sur la production d'applications performantes.
Si vous souhaitez créer une application très riche en fonctionnalités, vous pouvez consulter le NetBeans RCP (Rich Client Platform). Il y a une courbe d'apprentissage, mais vous pouvez créer rapidement de belles applications avec un peu de pratique. Je n'ai pas assez d'expérience avec la plateforme Eclipse pour porter un jugement valide.
Si vous ne souhaitez pas utiliser l'intégralité du RCP, NetBeans possède également de nombreux composants utiles qui peuvent être extraits et utilisés indépendamment.
Un autre conseil, regardez dans différents gestionnaires de mise en page. Ils m'ont fait trébucher pendant longtemps quand j'apprenais. Certains des meilleurs ne sont même pas dans la bibliothèque standard. Les outils MigLayout (pour Swing et SWT) et JGoodies Forms sont à mon avis deux des meilleurs.
la source
Je choisirais le swing juste parce qu'il est "natif" pour java.
De plus, jetez un œil à http://swingx.java.net/ .
la source
Pour vos besoins, il semble que l'essentiel sera d'utiliser Swing, car il est légèrement plus facile de démarrer et pas aussi étroitement intégré à la plate-forme native que SWT.
Swing est généralement une valeur sûre.
la source
Question interessante. Je ne connais pas trop bien SWT pour m'en vanter (contrairement à Swing et AWT) mais voici la comparaison faite sur SWT / Swing / AWT.
http://www.developer.com/java/other/article.php/10936_2179061_2/Swing-and-SWT-A-Tale-of-Two-Java-GUI-Libraries.htm
Et voici le site où vous pouvez obtenir un tutoriel sur pratiquement tout sur SWT ( http://www.java2s.com/Tutorial/Java/0280__SWT/Catalog0280__SWT.htm )
J'espère que vous prenez la bonne décision (s'il y a de bonnes décisions dans le codage) ... :-)
la source
Si vous envisagez de créer des applications fonctionnelles complètes avec plus d'une poignée de fonctionnalités, je vous suggérerai de passer directement à l'utilisation d'Eclipse RCP comme cadre.
Si votre application ne devient pas trop volumineuse ou si vos exigences sont trop uniques pour être gérées par un cadre d'entreprise normal, vous pouvez sauter en toute sécurité avec Swing.
À la fin de la journée, je vous suggère d'essayer les deux technologies pour trouver celle qui vous convient le mieux. Comme Netbeans vs Eclipse vs IntelliJ, il n'y a pas de réponse absolument correcte ici et les deux frameworks ont leurs propres inconvénients.
Swing Pro:
Pro SWT:
la source
Une chose à considérer: les lecteurs d'écran
Pour certaines raisons, certains composants Swing ne fonctionnent pas correctement lors de l'utilisation d'un lecteur d'écran (et de Java AccessBridge pour Windows). Sachez que différents lecteurs d'écran entraînent un comportement différent. Et d'après mon expérience, le SWT-Tree fonctionne bien mieux que le Swing-Tree en combinaison avec un lecteur d'écran. Ainsi, notre application a fini par utiliser à la fois des composants SWT et Swing.
Pour distribuer et charger la bibliothèque SWT appropriée, vous trouverez peut-être ce lien utile: http://www.chrisnewland.com/select-correct-swt-jar-for-your-os-and-jvm-at-runtime-191
la source
SWT a été créé en réponse à la lenteur de Swing au tournant du siècle. Maintenant que les différences de performances deviennent négligeables, je pense que Swing est une meilleure option pour vos applications standard. SWT / Eclipse a un cadre agréable qui aide beaucoup de code de plaque de chaudière.
la source