Programmation JavaFX/Introduction
JavaFX est un framework et une bibliothèque d'interface utilisateur issue du projet OpenJFX, qui permet aux développeurs Java de créer une interface graphique pour des applications de bureau, des applications internet riches et des applications smartphones et tablettes tactiles. Il permet également le rendu de scènes 3D.
JavaFX a été conçu initialement pour remplacer Swing et AWT à long terme.
Utilisation
modifierJava 7 à 10
modifierLe framework JavaFX est intégré aux versions 7 à 10 du JDK et du JRE (librairie jfxrt.jar). Il n'y a donc aucun logiciel supplémentaire à installer.
<JDKDIR>/jre/lib/ext/jfxrt.jar
Des applications de démonstration sont fournies avec le JDK dans un sous-répertoire
<JDKDIR>/demo/javafx_samples
Lancez en particulier l'application Ensemble8.jar qui donne un large aperçu de toutes les possibilités de JavaFX. Le code source de chaque démonstration est composé souvent d'un seul fichier, disponible par simple clic sur le lien "View source" associé à la démo.
Java 11
modifierÀ partir de Java 11, JavaFX (version 11 également) est un module indépendant à installer séparément[1] depuis le site suivant :
Les packages de JavaFX
modifierLe framework JavaFX est composé de classes situées dans les packages commençant par javafx :
- javafx.application
- Les classes pour la gestion de l'application JavaFX.
- javafx.stage
- Les classes pour la gestion des fenêtres applicatives (Stage).
- javafx.scene
- Les classes pour la gestion des scènes qui définissent le contenu des fenêtres. Ce contenu est constitués de nœuds (classe Node).
- javafx.scene.control
- Composants d'interface utilisateur : boutons, bouton radio, case à cocher, champ de texte, ...
- javafx.scene.layout
- Gestion de la taille et du positionnement des nœuds composant un scène.
- javafx.scene.shape
- Formes de base en 2D et 3D : rectangle, cercle, courbe, chemin, polygone, sphère, boîte, cylindre, ...
- javafx.scene.paint
- Couleur et autres objets tels que les dégradés (radial, linéaire, ...) pour le remplissage et le traçage des formes et du texte.
- javafx.scene.image
- Classes pour le chargement et l'affichage des images.
- javafx.scene.text
- Classes pour l'affichage du texte, gestion des polices de caractères.
- javafx.scene.transform
- Transformation 2D et 3D des nœuds : translation, rotation, échelle, étirage. Ces transformations sont aussi accessibles par appel de méthode sur les nœuds.
- javafx.scene.input
- Gestion des interactions avec l'utilisateur par le clavier et la souris.
- javafx.scene.effect
- Effets graphiques par application de filtres.
- javafx.scene.effect.light
- javafx.scene.chart
- Création et gestion de graphiques : courbe de points, graphique à barres, camembert, ...
- javafx.scene.chart.data
- Gestion des données pour les graphiques.
- javafx.scene.chart.part
- .
- javafx.geometry
- Les classes de gestion des dimensions et positions des nœuds (éléments d'une scène) en 2D et 3D.
- javafx.ext.swing
- Adaptateurs pour encapsuler des composants Swing dans une scène. Ces classes sont en général utilisées pour effectuer une transition des composants Swing vers leur équivalents JavaFX.
Utilisation avec Eclipse
modifierAprès la création d'un nouveau projet Eclipse ou l'import d'un projet existant utilisant un package de JavaFX, il est possible que Eclipse affiche des messages d'erreurs de ce type :
Access restriction: The type 'Application' is not API (restriction on required library jfxrt.jar)
Dans ce cas, il faut ajouter une règle d'accès dans le "Build Path" du projet :
- Cliquer avec le bouton droit sur le projet, "Build Path" > "Configure Build Path...".
- Dans l'onglet "Libraries", déplier le nœud "JRE System Library".
- Cliquer "Access rules", puis le bouton "Edit..." situé à droite.
- Dans la nouvelle fenêtre, cliquer le bouton "Add..." situé à droite.
- Mettre "Accessible" comme valeur pour "Resolution".
- Entrer "
javafx/**
" comme valeur pour "Rule Pattern". - Valider toutes les fenêtres de dialogues ouvertes.
Le chapitre suivant décrits les objets composant une application JavaFX.