# Programmation JavaFX/Introduction

* Base commune
** Introduction
** Composants d'une application JavaFX
* Interface graphique (2D)
** Classes 2D
* Scene 3D
** Formes 3D
** Apparence
** Interactions
* Media
** Jouer une vidéo ou un son
* Outils
** Scene Builder
* Base commune
** Introduction
** Composants d'une application JavaFX
* Interface graphique (2D)
** Classes 2D
* Scene 3D
** Formes 3D
** Apparence
** Interactions
* Media
** Jouer une vidéo ou un son
* Outils
** Scene Builder
[ Modifier le sommaire ]
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
### Java 7 à 10

Le 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.
Des applications de démonstration sont fournies avec le JDK dans un sous-répertoire
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

À partir de Java 11, JavaFX (version 11 également) est un module indépendant à installer séparément depuis le site suivant :
    https://openjfx.io/

## Les packages de JavaFX

Le 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

Aprè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 :
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.

## Réferences

* ↑ https://www.infoworld.com/article/3305073/removed-from-jdk-11-javafx-11-arrives-as-a-standalone-module.html