Developpez.com - Rubrique Java

Le Club des Développeurs et IT Pro

Apprendre à mettre en place un environnement de travail pour le développement d'un client en JavaFX,

Un tutoriel de Gérald Colin

Le 2019-10-22 12:54:50, par gecol1, Membre habitué
Bonjour,

Je vous propose une série d'articles traitant du développement d'un client desktop en JavaFX.

Voici le plan :
  • mise en place de l'environnement de développement et génération d'une première fenêtre
  • communication entre composants graphiques et personnalisation de l'interface
  • packaging et déploiement de l'application


L'URL du tutoriel : https://gerald-colin.developpez.com/tutoriels/javafx/developpement-client-environnement/

N'hésitez pas à laisser vos commentaires ici.

Gérald
  Discussion forum
11 commentaires
  • doc
    Membre averti
    Merci pour cet article très intéressant qui met en lumière JavaFx dont on parle assez peu depuis un moment.
    Toutefois, une des difficultés du déploiement de javafx consiste à son installation dans l'IDE, car depuis Java9 je crois, javafx est un module à part du JDK. Il faut donc non seulement l'intégrer en tant que librairie dans l'IDE (Eclipse, jetbrain ou netbeans) mais aussi passer un argument à la machine virtuelle dans le 'run configuration'. Les procédures pour chaque IDE sont très bien décrites sur le site de Gluon. Il reste toutefois encore à trouver et renseigner les adresses de la javadoc pour profiter pleinement de l'environnement. Tout cela est assez fastidieux finalement.
  • gecol1
    Membre habitué
    Merci pour le commentaire et je suis d'accord que JavaFX n'est pas assez mis en avant alors que c'est une solution technique pour des interfaces graphiques tout à fait valable et cross-plateforme.

    Pour les versions, il y a une période de transition un peu pénible. Cet article est justement en Oracle JDK 8 puisque c'est le dernier à avoir JavaFX intégré. A partir du JDK 9 il faut aussi ajouter OpenJFX mais je conseillerai de le faire avec les versions 11 et d'éviter les versions intermédiaires. Je souhaite décrire le passage à la v11 (ou plus) dans un prochain article.
  • bouye
    Rédacteur/Modérateur
    J'ai aussi eut des différences de comportement (IDE : IDEA et NetBeans) entre JavaFX 11, 12 et 13 (chacun associé à son JDK de la même version) lorsque l'IDE essaie de trouver la partie native de JavaFX (le fameux message qui dit que les runtimes ne sont pas présents*). Je conseille de rajouter au moins une partie concernant JDK 11 + JavaFX 11 puisque c'est la version avec support de longue durée mais aussi de traiter la version la plus récente JDK 13 + JavaFX 13 (au moment où j'écris ça) si jamais tu vois des comportements différents dans Eclipse par rapport à la version 11.

    *Au final ca arrive surtout quand on fait des applications non-modulaires. Dès la déclaration de module ces erreurs disparaissent. A noter que j'utilise ni Eclipse, ni Maven, ni Gradle, ni les jmods.
  • abdennour bouaicha
    Membre régulier
    un grand merci
  • gecol1
    Membre habitué
    Bonjour,

    Je suis désolé mais j'ai effectivement écrasé la partie 1 avec la 2. Cela est rétabli. La partie 2 est en cours de relecture et n'est donc pas officielement publiée.
    Merci pour vos retours.
  • la.lune
    Membre chevronné
    Merci pour cet article bon, ça permet de découvrir quelques nouveautés comme le framework JFoenix qui était méconnu pour moi et pourtant c'est trop beau.
    J'aurais aimé que des liens vers de vrai demo soient intégré mais j'ai les liens renvoient au dépôt GitHub. Mais après quelques recherches sur Youtube c'est là où j'ai vu que c'est vraiment intéressant, des look qu'on ne peut jamais avoir avec une application web.


  • Badshade23
    Membre habitué
    Sympa le tutoriel.
    Je suis passé récemment de swing à JAVAFX en utilisant le FXML.
    J'utilise l'IDE éclipsé et niveau de l'auto-completion c'est un peut la misère .
    Même ça mise en place dans l'IDE est vachement lourd depuis qu'il n'est plus supporté par oracle.
    C'est simple les deux dernières versions de l'IDE (à l'heure où j’écris) ne la prend même pas en compte.
    Sinon je trouve que ce langage à encore quelques défaut et quand on désire générer des parties de fenêtre dynamiquement il y a mieux comme pour la binding comparer à d'autres langages.
    Mais avec des chances de chance la communauté le fera évoluer dans le bon sens .
  • guiblan
    Nouveau membre du Club
    Bonsoir, j'ai commencé à suivre la partie 2 mais je trouve que dans cette partie, vous n'indiquez pas comment fonctionne la partie about.
    Je n'ai pas le code de la classe dialoghelper et je ne sais pas trop ce qu'elle doit contenir pour commencer à la mettre en place.
    De plus, ma classe App est dans le package par défaut et donc inaccessible en l'état.
    Pour ce point, je vais modifier mon programme.
    Avez-vous prévu de fournir plus d'explication pour la partie about ?

    Cdlt,
    Guiblan
  • gecol1
    Membre habitué
    Bonjour,

    Je vous remercie pour votre retour. La partie 2 n'est pas encore finalisée et est en cours de relecture et validation par les équipes de DVP.
    Pour ne pas surchager l'article avec trop de code, le helper est disponible que sur le repo mais suite à vos remarques je le remet dans l'article pour une meilleure compréhension.
    Par contre je ne vois pas votre point sur la classe App. Qu'entendez vous par package par defaut?

    Cdt
  • -FloT-
    Membre éprouvé
    Bonjour et merci pour ce tutoriel.
    Sauf erreur de ma part, la partie 1 n'est plus disponible. L'URL donnée dans l'introduction renvoie vers la partie 2. De plus, je ne vois pas le lien non plus sur https://gerald-colin.developpez.com/. Est-elle encore disponible?