JavaFX aide à créer l'interface d'une application Java
Mais qu'est-ce que JavaFX offre de plus que XAML ou HTML 5, ou Swing? Qui pourra être le plus intéressé par cette nouvelle solution de l'éditeur de Java?
L'image ci-dessous montre un exemple d'interface réaliser avec JavaFX et elle semble étonnante!
Le lecteur MP3 est une démonstration d'interface réalisée avec JavaFX.
Il est fourni sur le site de JavaFX avec son code source.
En fait, il s'adresse autant aux designers qu'aux programmeurs...
Java veut aller au-delà du bureau et s'installer sur les navigateurs ainsi que sur les mobiles et tous appareils multimédia.
Cela pose comme finalité une plateforme de RIA que pourront utiliser directement ou indirectement:
- Les développeurs Web.
- Les auteurs de contenu.
- Les concepteurs graphiques.
Donc les webmasters sont concernés par ce framework dans toutes les fonctions liées à l'interface utilisateur.
En 2018, Oracle a décidé de faire de JavaFX un outil distinct de Java, et de le distribuer sur le site OpenJFX. En même temps elle augmente son investissement dans AWT/Swing, ce qui dénote un désintérêt pour JavaFX.
Un framework pour bureau, le Web ou les mobiles
JavaFX veut être le framework des applications Web ainsi que des applications sur mobile. Cela le met en concurrence avec plusieurs framework déjà populaires ainsi qu'avec Android, plateforme de développement, et OS mobile de Google.
Il permet de réaliser plus facilement des interfaces que Swing, cependant les composants de ce dernier n'avaient pas tous leur équivalent sur JavaFX. Avec le temps cela cesse d'être le cas.
Le site de JavaFX met l'accent sur les capacités audio et vidéo, le texte enluminé et le graphisme vectoriel, les animations et les services web. Il offre des exemples qui fonctionneront sur votre ordinateur avec la dernière version de Java.
Les runtimes Java actuels pour PC et celui des mobiles font apparaître des incompatibilités. JavaFX veut les supprimer et offrir un framework unique pour toutes les applications en ligne.
Les applications pour mobiles pourront donc fonctionner sur les PC. De même pour les applications web, il sera possible de déplacer une application fonctionnant dans une page web sur le bureau par simple glisser-déposer.
La plateforme est composée de plusieurs parties:
- L'environnement de développement.
Il comprend un compilateur, un runtime, et l'IDE NetBeans doté d'un plug-in spécialisé.
Un émulateur de mobile pour mettre au point les applications évoque le système Android, dont le langage est également Java.
Scene Builder est un outil qui permet de décrire visuellement l'ensemble de l'interface de l'application avant d'ajouter des composants. Puis de connecter l'interface au code Java. - La suite de production.
Un ensemble d'outils et plug-ins pour l'interfacer avec des logiciels tels que Photoshop, et donc les utiliser plus facilement pour réaliser le graphisme des applications web. - Le bureau (JavaFX Desktop).
A l'instar de Chromeless de Mozilla ou le mode offline de HTML 5, les applications Web peuvent s'installer sur le bureau. Dans le cas présent, ce sont les applets intégrées aux pages qui fonctionneront localement. - FXML, le langage de description d'interface est le pendant de XAML ou XUL.
- Le runtime comprend Prism, un moteur graphique pour l'accélération matérielle, un composant Web. Un plugin l'ajouter au navigateur.
- L'installeur qui crée un package installable comme application indépendante, qui inclut le runtime. Il fait appel au choix du programmeur à Inno Setup, au créateur de fichiers MSI de Microsoft, ou à des outils équivalents pour chaque système d'opération.
Pour démarrer le développement d'une application, télécharger le SDK, puis lire le manuel de démarrage. (Anglais).
Pour faciliter le développement, un nouveau langage de programmation, JavaFX Script était présenté comme permettant d'écrire en 25 lignes ce qu'on écrit en 100 lignes de Java, mais il ne fonctionne plus depuis la version 2.0 de JavaFX et doit donc être oublié!
L'installation native-like
Depuis la version 2.2 il est possible d'installer une application construite avec JavaFX comme une application binaire, sans qu'elle dépende de l'installation préalable du runtime Java sur la machine.
L'application est packagée avec son propre runtime, une copie personnelle des classes Java nécessaires à son fonctionnement ainsi que les images et autres ressources nécessaires à l'interface. Cela au détriment de l'espace disque, mais en supprimant tout problème de compatibilité.
Ainsi on n'a plus besoin d'un compilateur comme GCJ pour réaliser un exécutable. Ce système en fait convenait surtout à l'époque où les ordinateurs étaient moins rapide et quand le runtime comportait beaucoup moins de classes. Leur augmentation progressive à découragé les développeurs de ces compilateurs Java en binaire.
Les ordinateurs actuels peuvent se contenter d'un interpréteur JIT et ce packaging simplifie surtout l'installation.
Une des raisons pour l'apparition - un peu tardive - de ce système est après qu'elle ait perdu le procès contre Google, qu'Oracle voit en cela un moyen d'installer les applications Java classique (non Dalvik) sur mobiles Android.
Conclusion
Les exemples donnés sur le site sont impressionants. Ce nouveau framework démarre avec des atouts de poids: l'universalité des applications, l'outil de développement NetBeans gratuit qui simplifie notablement la réalisation des logiciels. JavaFX complique encore le choix des développeurs qui hésiteront maintenant entre trois plateformes au moins: HTML 5, XAML, JavaFX!
Voir la Liste des GUI pour choisir parmi toutes les solutions pour construire une interface utilisateur graphique.