une solution plus moderne que swing?

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous, je suis en train de développer une application pour windows assez légère mais je suis confronté a un problème assez fréquent en java: mon interface graphique est très lourde et pas modulable du tout. Elle tourne sous AWT et swing car je veux pouvoir la déployer le plus simplement possible sur tout les OS mais devoir redefinir tout mes composants parce qu ils sont moches est errant et bordélique. Connaissez des solutions comme des framework plus légers ou des technologies qu on peut utiliser en 3 tiers avec le java pour gérer les interfaces, mes recherches sont peu fructueuses et surtout un peu obseletes. Merci beaucoup de vos réponses, GouleFutée

L'architecture de JavaFX repose sur la JVM, comme tu peux le voir dans l'image ci-dessous.

Archi JavaFX

C'est aussi le cas de Swing. Donc tu peux faire tourner une partie de ton interface en Swing et l'autre en JavaFX. Si tes vue sont séparés de ta logique de traitement, c'est encore plus simple.

Comme autre alternative, SWT n'est pas à négliger non plus. ON peut aussi faire du QT ou du WXWidgets si on le souhaite, même si Java n'est pas leur plateforme idéale d'après ce que j'en sais.

L'avantage de SWT, c'est qu'il utilise tant que possible les composants graphiques natifs du système. L'interface adopte donc d'office un look auquel l'utilisateur a l'habitude, c'est beaucoup plus accessible aux technologies d'assistance (lecteurs d'écran, zooms, etc.), et c'est souvent réputé moins lourd.

Swing et JavaFX sont à la philosophie opposée, ils tiennent à ce que le look soit identique quelque soit le système, et du coup ça peut être déroutant pour l'utilisateur, l'accessibilité est beaucoup plus problématique, et c'est réputé plus lourd. Ce qui est sûr c'est que si on veut rester dans cette philosophie-là, mieux vaut effectivement passer à JavaFX parce que ça fait déjà quelques années que Swing est complètement abandonné.

Note bonus, on peut ranger WXWidgets dans la première catégorie, et QT dans la deuxième.

Je trouve que le fait de s'adapter selon le système est un avantage, mais ceux qui tiennent à ce que leur application ait exactement le même look partout le verront comme un gros inconvénient. C'est une question de point de vue et ça dépend de ce qu'on veut faire.

Petit HS un brin trollesque cependant, je pense que Java pour des applications bureau, c'est de toute manière de la lourdeur inutile. J'adore Java et c'est mon langage de prédilection, mais il faut quand même reconnaître les faiblesses.

+0 -1

La portabilité évidemment c est d ailleurs pourquoi mon choix s est porté dessus. Je cherche une lib légere pour ne pas alourdir encore le programme justement a cause de java ^^ merci beaucoup pour vos réponses, je pense que mon choix va se porter vers swt dans un premier temps et ensuite peut être une lib plus poussée ou même fait maison.Merci a tous de vos aides^^

+0 -0

Comme autre alternative, SWT n'est pas à négliger non plus.

QuentinC

Pour moi SWT lui aussi est mort. Contrairement à ce qu'on annonçait il y a 5 ans sur l'avenir de SWT, aujourd'hui SWT ne peut pas rivaliser avec JavaFX.

Swing et JavaFX sont à la philosophie opposée, ils tiennent à ce que le look soit identique quelque soit le système,

QuentinC

Justement non, la Philosophie de Swing et JavaFX c'est de laisser le choix du LookandFeel à l'utilisateur contrairement à SWT qui n'est pas flexible (tu prend le look de l'OS ou rien). C'est différent de la vision que tu montre car justement avec Swing par exemple tu peux charger n'importe quel UI (même celle de ton OS) en 3 lignes. En gros Tu peux voir JavaFX comme un mélange entre SWT (rapidité) et Swing (Flexibilité).

Par expérience, il vaut mieux s'orienter vers la techno plébiscitée par le proprio (Oracle -> JavaFx) plutot que vers la techno du demi-cousin (IBM-> Swt)

Il lui reste quoi a Java alors ?

KFC

Juste les plus gros serveurs d'applications, leurs serveurs web ainsi que les 99% des applications mobiles du PlayStore. ;)

Pour moi SWT lui aussi est mort. Contrairement à ce qu'on annonçait il y a 5 ans sur l'avenir de SWT, aujourd'hui SWT ne peut pas rivaliser avec JavaFX.

Ah, pourqoi ?

Justement non, la Philosophie de Swing et JavaFX c'est de laisser le choix du LookandFeel à l'utilisateur contrairement à SWT qui n'est pas flexible (tu prend le look de l'OS ou rien). C'est différent de la vision que tu montre car justement avec Swing par exemple tu peux charger n'importe quel UI (même celle de ton OS) en 3 lignes. En gros Tu peux voir JavaFX comme un mélange entre SWT (rapidité) et Swing (Flexibilité).

Quelque soit le look and feel que tu charges, ce ne sont pas les véritables composants natifs du système. Donc c'est forcément plus lourd vu qu'il y a une couche d'abstraction en plus.

Mais effectivement, c'est plus pratique pour le développeur parce qu'il peut faire en sorte que son application ait exactement le même visu partout. C'est de la flexibilité pour toi, mais pas pour l'utilisateur. L'utilisateur final il s'en contrefiche de pouvoir choisir le look and feel à la volée parmi 3 ou 4 possibilités (sérieusement, qui l'a vraiment fait ? et quel logiciel GUI basé sur Swing le proposait effectivement ?)

Par expérience, il vaut mieux s'orienter vers la techno plébiscitée par le proprio (Oracle -> JavaFx) plutot que vers la techno du demi-cousin (IBM-> Swt)

Ca après c'est de la stratégie commerciale, on y adhère ou pas. Mais ça veut pas dire que JavaFX est forcément mieux que SWT, ni que SWT est forcément à jeter.

+0 -0

La portabilité évidemment c est d ailleurs pourquoi mon choix s est porté dessus.

GouleFutée

Juste les plus gros serveurs d'applications, leurs serveurs web ainsi que les 99% des applications mobiles du PlayStore

firm1

Et pour les autres langages qui ont aussi un implémentation JVM ou Dalvik/ART ? Scala ? Clojure ?

+0 -0

Et pour les autres langages qui ont aussi un implémentation JVM ou Dalvik/ART ? Scala ? Clojure ?

Pour moi c'est simple, ils ont hérité de tous les avantages et les inconvénients que Java a déjà avec la JVM: très bon et très performant côté serveur, mais plutôt lourd et pas forcément pratique à installer côté client bureau. On ne remet bien sûr pas en question les avantages qu'ils peuvent apporter par rapport à Java en tant que langage.

Je ne peux pas juger pour la plateforme Android, je ne pratique pas (ah oui tiens d'ailleurs, est-ce qu'on peut coder une app Android en Scala et/Ou Clojure et la faire tourner sur la JVM de Google après ? En tout cas j'ai jamais vu)

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte