Java application de Bureau: 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 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?
Grâce.
PS: je développe sous Windows à l'aide d'Eclipse. Mais la réflexion sur la lecture avec Netbeans.
- Question difficile. 🙂 J'irais avec Swing. Mais, n'ont pas de PRO ou les Inconvénients de cette décision.
- double Q. s'il vous plaît regardez pour le Swing vs SWT Q est demandé déjà sur DONC. FWIW, je l'utilise Balancer juste parce que j'ai appris de cette façon. Il y a des indigènes look-and-feel bibliothèques (voir jgoodies semble)
- "construire un outil qui automatise une très répétitif des tâches dans une application web" - aucune info à ce sujet? Il y a peut être un outil existant - et je m'interroge sur la nécessité d'une application de bureau pour automatiser ce - qu'il peut travailler dans votre cas, pour l'instant, mais que faire si vous vous déplacez à une solution hébergée?
- Vous n'avez pas besoin d'apprendre un GUI cadre d'une application de bureau. Si vous pouvez utiliser le html, le css et le js (que je suis en supposant que vous êtes), vous pouvez utiliser de l'Électron à construire des indigènes à la recherche des applications avec des langages web.
- L'électron a été inventé quelques années après que j'ai posé cette question 😉 Mais bien sûr, aujourd'hui, vous sont corrects.
Vous devez vous connecter pour publier un commentaire.
Pros Swing:
supplémentaires bibliothèques natives
Cons Swing:
différente de la vraie natif
système d'.
Pros SWT:
Contre SWT:
système pris en charge
les ressources utilisées (indice options)
CrossPlatformLookAndFeel
(Métal). Vous devez le modifier pourSystemLookAndFeel
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.
pro swing:
Mais à la ligne en bas, je ne dirais pas utiliser "pure" swing ou swt 😉
Il existe plusieurs frameworks d'applications pour le swing/swt out. 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 non seulement swing; également pivot, swt, etc
Je voudrais utiliser Swing pour un couple de raisons.
Il a été plus longtemps 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.
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 la 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 mot de conseils, de regarder 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.
Je devait choisir balancer juste parce que c'est "natif" pour java.
Plus, jetez un oeil à http://swingx.java.net/.
Pour vos exigences, il sonne comme le bas de ligne sera d'utiliser Swing car il est un peu plus facile à prendre en main et pas aussi étroitement intégré à la plate-forme native comme SWT.
Swing est généralement une valeur sûre.
Question intéressante. Je ne sais pas SWT trop bien de se vanter à ce sujet (à la différence de Swing et AWT) mais ici, c'est 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 tutoriel sur pratiquement n'importe quoi sur SWT (http://www.java2s.com/Tutorial/Java/0280__SWT/Catalog0280__SWT.htm)
Vous souhaite de faire une bonne décision (si il y a de bonnes décisions dans le codage)... 🙂
Si vous envisagez de construire une fonctionnelle d'applications avec plus d'une poignée de fonctionnalités, je vous suggère de sauter à droite à l'aide d'Eclipse RCP comme le cadre.
Si votre demande n'augmente pas trop grand ou que vos besoins sont tout simplement trop unique pour être manipulé par un cadre normal des affaires, vous pouvez sauter avec Élan.
À la fin de la journée, je vous suggère d'essayer les deux technologies pour trouver celui que vous conviendront le mieux. Comme Netbeans et Eclipse vs IntelliJ, il n'est pas l'absolu réponse correcte ici, et les deux cadres ont leurs propres inconvénients.
Pro Swing:
Pro SWT:
Une chose à considérer: lecteurs d'écran
Pour certaines raisons, certains composants Swing ne fonctionnent pas lors de l'utilisation d'un lecteur d'écran (et la Java AccessBridge pour Windows). Savoir que les différents lecteurs d'écran entraîner des comportements différents. Et dans mon expérience, la SWT-Arbre effectue beaucoup mieux que le Swing-Arbre en combinaison avec un lecteur d'écran. Ainsi, notre application s'est terminée en utilisant à la fois SWT et composants Swing.
Pour la distribution et le chargement de la bonne SWT-bibliothèque, vous trouverez peut-être ce lien utile:
http://www.chrisnewland.com/select-correct-swt-jar-for-your-os-and-jvm-at-runtime-191
SWT a été créé comme une réponse à la lenteur de Swing autour du tournant du siècle. Maintenant que les différences de performance sont de plus négligeable, je pense que le Swing est une meilleure option pour vos applications. SWT/Eclipse a un joli cadre qui permet avec beaucoup de chaudière plaque de code.