J'ai utilisé Java Swing pour certaines applications de bureau. Mais je n'ai pas beaucoup utilisé d'autres frameworks GUI donc je ne peux pas les comparer.
Il y a certainement des choses que j'aime avec Swing et d'autres que je n'aime pas, mais c'est la situation avec presque tout.
Quels sont les plus gros inconvénients du framework Java Swing GUI?
frameworks
gui
swing
Jonas
la source
la source
Réponses:
Vous devez avoir installé java quelque part. C'est vrai pour tous les frameworks GUI bien sûr, mais java a la perception d'un gorille de 2 tonnes. Les choses se sont améliorées, mais ces premiers jours avec les applets Java ont découragé beaucoup de gens. Si vous n'en avez besoin que pour exécuter votre seule application, il faut beaucoup de maintenance pour la maintenir à jour avec les correctifs de sécurité et autres. Tout le monde doit avoir Flash pour youtube, le framework .Net s'installe en coulisses et tout le monde a activé javascript sur son navigateur. Java est généralement une chose supplémentaire à faire.
Bien que ce soit en quelque sorte à écriture unique, exécuté n'importe où, vous trouvez toujours que Mac OSX n'a pas cette nouveauté que vous souhaitez utiliser ou qu'un client refuse de mettre à niveau sa mandrake linux après JRE 1.4.
En tant que développeur, vous devez penser au filetage. Et c'est d'une manière délicate, car le multi-threading est possible mais le swing prétend que tout est simple. Mais alors la moitié des bibliothèques que vous tirez ont un certain degré de multi-thread et supposent que vous connaissez EDT invokeLater et cela force beaucoup de leçons à la dure.
L'expérience Swing ne se transfère pas facilement à d'autres types de développement d'interface utilisateur. Par exemple, si vous êtes un expert des tables en .css, vous allez être complètement guidé par Jtables, les rendus, les éditeurs, etc.
En général, le principal problème avec Swing est qu'il ne correspondait pas à la façon dont il était commercialisé. C'est une technologie parfaitement adaptée à de nombreux cas d'utilisation, mais ces 5 ou 6 premières années étaient pleines d'implémentations horribles et d'applets atroces. Et maintenant, c'est de la vieille technologie - sur le Web 3.0 ou autre.
Cela dit, j'aime Swing et je pense que les avantages l'emportent généralement sur les inconvénients lorsque vous avez besoin de ce qu'il offre. Cependant, l'expérience Web est tellement omniprésente maintenant que de nombreux utilisateurs auront plus de facilité avec une application Web que l'application swing étonnante la plus rationalisée. Et il existe de superbes applications Swing, mais elles ne semblent pas être courantes.
la source
Jonas,
Swing généralise votre architecture sous-jacente pour vous offrir une expérience utilisateur neutre sur la plateforme. Le seul composant lourd (fourni par le système d'exploitation) est le conteneur JFrame et le reste est à peu près géré par le Swing takeit. AWT de l'autre côté, demande au système d'exploitation de dessiner tous ses composants d'interface utilisateur, ce qui signifie qu'il est plus rapide à bien des égards que votre utilisation des composants d'interface utilisateur natifs spécifiques au système d'exploitation. SWT essaie de trouver un terrain d'entente, pour divers composants standard comme les boutons et les étiquettes (qui sont disponibles sur la plupart des systèmes d'exploitation), il permet au système d'exploitation de les gérer et pour d'autres composants spécialisés, SWT se chargera de la création pour vous.
Cela dit, je peux souligner les inconvénients.
(1) Étant donné que la boîte à outils crée et rend les composants pour vous plutôt que de demander au système d'exploitation, vous ne bénéficiez pas de la vitesse des composants intégrés fournis par le système d'exploitation.
(2) L'interface utilisateur n'est pas particulièrement attrayante car elle semble étrangère à la plupart des plates-formes de système d'exploitation en ce qui concerne l'apparence que vous utilisez.
(3) Certains des gestionnaires de mise en page, à savoir GridBadLayout, etc. pourraient être mieux simplifiés. J'ai perdu le compte du nombre de projets sur lesquels j'ai travaillé où les gens ont encapsulé le GridBagLayout dans du code sur mesure pour obtenir un moyen plus simple de l'utiliser.
Je vous conseille d'écrire une application simple en AWT, Swing et SWT et de comparer les approches de développement et le produit final entre elles, puis de passer en revue les divers commentaires faits par d'autres développeurs et de décider laquelle fonctionne le mieux. J'ai travaillé avec Swing pendant de nombreuses années et j'ai utilisé le SWT que je n'aime pas, mais je me suis rendu compte que Swing est beaucoup plus compliqué qu'il ne devrait l'être par rapport à d'autres frameworks.
la source
Le swing est lent (mauvaise performance), difficile / maladroit à utiliser (par rapport à beaucoup d'autres) et il ne semble pas très bon, en fait très mauvais, sur certaines plates-formes.
la source