Aller au contenu

« JavaFX » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Guiguidu60 (discuter | contributions)
m Versions : Ajouts du jour de sortie de chaque version
Fonctionnalité de suggestions de liens : 1 lien ajouté.
 
(29 versions intermédiaires par 13 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{Multi-infobox
{{Infobox Logiciel
|1={{Infobox Logiciel
| couleur boîte =
| nom =
| couleur boîte = 53829e
| nom = {{blanc|JavaFX}}
| logo = JavaFX Logo.png
| logo = JavaFX Logo.png
| upright logo = 2
| upright logo = 2
| image = JavaFX_-_Interface_utilisateur.png
| image = JavaFX_-_Interface_utilisateur.png
| upright image = 1.5
| upright image = 1.5
| légende = Capture d'écran qui montre une fenêtre d'un programme fictif créé avec JavaFX
| légende = Capture d'écran qui montre la fenêtre d'un programme fictif créé avec JavaFX
| développeur = [[Oracle (entreprise)|Oracle]] et la communauté OpenJFX
| développeur = [[Oracle (entreprise)|Oracle]] et la communauté OpenJFX
| exécutable =
| exécutable =
| date de première version = 4 décembre 2008
| date de première version = 4 décembre 2008
| dernière version = 12
| dernière version = 21.0.2
| date de dernière version = 11 mars 2019
| date de dernière version = septembre 2023
| version avancée = 13
| version avancée = 22
| date de version avancée = 04 avril 2019
| date de version avancée = mars 2024
| dépôt = {{GitHub|javafxports/openjdk-jfx}}
| dépôt = {{GitHub|openjdk/jfx}}
| état = Actif
| état = {{oui|Actif}}
| langage de programmation = [[Java (langage)|Java]], [[C++]], [[C (langage)|C]]
| langage de programmation = [[Java (langage)|Java]], [[C++]], [[C (langage)|C]]
| environnement = [[Multi-plateforme]]
| environnement = [[Multi-plateforme]]
Ligne 25 : Ligne 26 :
| wikidata =
| wikidata =
| créateur = [[Sun Microsystems]]
| créateur = [[Sun Microsystems]]
| version précédente =
| version précédente = [[Swing (Java)]]
| version suivante =
| version suivante =
}}
}}
|2={{Plate-forme Java}}
'''JavaFX''' est un [[framework]] et une [[Bibliothèque graphique|bibliothèque d'interface utilisateur]] issue du projet [[OpenJFX]], qui permet aux développeurs [[Java (langage)|Java]] de créer une [[interface graphique]] pour des applications de bureau, des [[Rich desktop application|applications internet riches]] et des applications smartphones et tablettes tactiles.
}}

'''JavaFX''' est un [[framework]] et une [[Bibliothèque graphique|bibliothèque d'interface utilisateur]] issue du projet [[OpenJFX]], qui permet aux développeurs [[Java (langage)|Java]] de créer une [[interface graphique]] pour des applications de bureau, des [[Rich desktop application|applications internet riches]] et des applications [[Smartphone|smartphones]] et tablettes tactiles.


Créé à l'origine par [[Sun Microsystems|Sun MicroSystems]], puis développé par [[Oracle (entreprise)|Oracle]] après son rachat et ce, jusqu'à la version 11 du [[Java Development Kit|JDK]], c'est depuis lors à la communauté OpenJFX que revient la poursuite de son développement<ref>{{Lien web|langue=|titre=JDK 11 update: JavaFX will be decoupled from the JDK|url=https://jaxenter.com/jdk-11-javafx-separate-module-142186.html|site=jaxenter.com|périodique=JAXenter|date=8 mars 2018|consulté le=19 mars 2019}}</ref>.
Créé à l'origine par [[Sun Microsystems|Sun MicroSystems]], puis développé par [[Oracle (entreprise)|Oracle]] après son rachat et ce, jusqu'à la version 11 du [[Java Development Kit|JDK]], c'est depuis lors à la communauté OpenJFX que revient la poursuite de son développement<ref>{{Lien web|langue=|titre=JDK 11 update: JavaFX will be decoupled from the JDK|url=https://jaxenter.com/jdk-11-javafx-separate-module-142186.html|site=jaxenter.com|périodique=JAXenter|date=8 mars 2018|consulté le=19 mars 2019}}</ref>.


Cette bibliothèque à été conçue pour remplacer [[Swing (Java)|Swing]] et [[Abstract Window Toolkit|AWT]], qui ont été développés à partir de la fin des années 90, pour pallier les défauts de ces derniers et fournir de nouvelles fonctionnalités (dont le support des écrans tactiles).
Cette bibliothèque a été conçue pour remplacer [[Swing (Java)|Swing]] et [[Abstract Window Toolkit|AWT]], qui ont été développés à partir de la fin des années 90, pour pallier les défauts de ces derniers et fournir de nouvelles fonctionnalités (dont le support des écrans tactiles).


Le cycle de sortie d'une nouvelle version de JavaFX correspond à celui de Java, soit tous les 6 mois.
Le cycle de sortie d'une nouvelle version de JavaFX correspond à celui de Java, soit tous les 6 mois.
Ligne 38 : Ligne 42 :


== Historique ==
== Historique ==
À ces débuts, les développeurs devaient utiliser le langage de script [[JavaFX Script]] pour pouvoir décrire une interface utilisateur et la bibliothèque ne permettait de concevoir que des applications internet riches.
À ses débuts, les développeurs devaient utiliser le langage de script [[JavaFX Script]] pour pouvoir décrire une interface utilisateur et la bibliothèque ne permettait de concevoir que des applications internet riches.


Depuis la version 2.0, il s'agit d'une véritable [[Interface de programmation|API]] qui est proposé sous la forme d'une bibliothèque tierce et qui plus est, devient [[open source]]<ref name=":0">{{Lien web|langue=anglais|titre=Repositories and Releases|url=https://wiki.openjdk.java.net/display/OpenJFX/Repositories+and+Releases|site=OpenJDK Wiki|périodique=|date=22 décembre 2017|consulté le=19 mars 2019}}</ref>.
Depuis la version 2.0, il s'agit d'une véritable [[Interface de programmation|API]] qui est proposé sous la forme d'une bibliothèque tierce et qui plus est, devient [[open source]]<ref name=":0">{{Lien web|langue=anglais|titre=Repositories and Releases|url=https://wiki.openjdk.java.net/display/OpenJFX/Repositories+and+Releases|site=OpenJDK Wiki|périodique=|date=22 décembre 2017|consulté le=19 mars 2019}}</ref>.


Avec l'apparition de la version 8 de Java (en mars 2014), JavaFX devient la bibliothèque de création d'interface graphique officielle du langage Java, le développement de son prédécesseur Swing (avec AWT) étant abandonné, excepté pour les corrections de bogues.
Avec l'apparition de la version 8 de Java (en {{date-|mars 2014}}), JavaFX devient la bibliothèque de création d'interface graphique officielle du langage Java, le développement de son prédécesseur Swing (avec AWT) étant abandonné, excepté pour les corrections de bogues.


Depuis la version 11 de Java, le projet est dissocié du JDK, pour suivre son propre processus de développement. Toutefois, le numéro de version de JavaFX concorde avec celui du JDK pour indiquer sa compatibilité (car toute application JavaFX est basé sur le JDK).
Depuis la version 11 de Java, le projet est dissocié du JDK, pour suivre son propre processus de développement. Toutefois, le numéro de version de JavaFX concorde avec celui du JDK pour indiquer sa compatibilité (car toute application JavaFX est basée sur le JDK).


== Composants ==
== Composants ==
[[Fichier:JavaFX - 3D shapes with materials adjusted.png|thumb|Exemple de scène 3D simple utilisant JavaFX.]]
JavaFX est composé des 7 modules suivants:
JavaFX est composé des 7 modules suivants:


Ligne 54 : Ligne 59 :
*'''javafx.graphics''': Définit l'API relative aux conteneurs, animations, effets visuels, formes 2D et 3D, images, impression, fenêtres, événements, robots, au support du CSS et à l'application
*'''javafx.graphics''': Définit l'API relative aux conteneurs, animations, effets visuels, formes 2D et 3D, images, impression, fenêtres, événements, robots, au support du CSS et à l'application
*'''javafx.media''': Définit l'API dédié à la lecture de contenu audio et vidéo
*'''javafx.media''': Définit l'API dédié à la lecture de contenu audio et vidéo
*'''javafx.swing''': Définit l'API qui fournit le support d’interopérabilité entre JavaFX et [[Swing (Java)|Swing]]
*'''javafx.swing''': Définit l'API qui fournit le support d’[[interopérabilité]] entre JavaFX et [[Swing (Java)|Swing]]
*'''javafx.web''': Définit l'API dédié à l'affichage de contenu web (notamment un éditeur HTML et un moteur de rendu de pages web basé sur [[WebKit]])
*'''javafx.web''': Définit l'API dédié à l'affichage de contenu web (notamment un [[éditeur HTML]] et un moteur de rendu de pages web basé sur [[WebKit]])


== Versions ==
== Versions ==
Ligne 65 : Ligne 70 :
|-
|-
|1.0
|1.0
|4 décembre 2008
|{{date-|4 décembre 2008}}
|JavaFX Script ; le code source est fermé
|JavaFX Script ; le code source est fermé
|-
|-
|1.1
|1.1
|12 février 2009
|{{date-|12 février 2009}}
|
|
|-
|-
|1.2
|1.2
|2 juin 2009
|{{date-|2 juin 2009}}
|
|
|-
|-
|1.3
|1.3
|22 avril 2010
|{{date-|22 avril 2010}}
|Intégration des diagrammes ; support du CSS
|Intégration des diagrammes ; support du CSS
|-
|-
|1.3.1
|1.3.1
|21 août 2010
|{{date-|21 août 2010}}
|
|
|-
|-
|2.0
|2.0
|10 octobre 2011
|{{date-|10 octobre 2011}}
|Il s'agit désormais d'une API et non d'un langage de script ; FXML
|Il s'agit désormais d'une API et non d'un langage de script ; FXML
|-
|-
|2.1
|2.1
|27 avril 2012
|{{date-|27 avril 2012}}
|Support de MacOS
|Support de MacOS
|-
|-
|2.2
|2.2
|14 août 2012
|{{date-|14 août 2012}}
|Support de Linux ; nouveaux composants graphiques
|Support de Linux ; nouveaux composants graphiques
|-
|-
|8.0
|8.0
|18 mars 2014
|{{date-|18 mars 2014}}
|Intégration de JavaFX au JDK 8
|Intégration de JavaFX au JDK 8
|-
|-
|9.0
|9.0
|21 septembre 2017
|{{date-|21 septembre 2017}}
|Modularisation de JavaFX
|Modularisation de JavaFX
|-
|-
|10.0
|10.0
|20 mars 2018
|{{date-|20 mars 2018}}
|
|
|-
|-
|11.0
|11.0
|18 septembre 2018
|{{date-|18 septembre 2018}}
|Devient un module à part entière du JDK
|Devient un module à part entière du JDK
|-
|-
|12.0
|12.0
|11 mars 2019
|{{date-|11 mars 2019}}
|
|
|-
|-
|13.0
|13.0
|{{date-|10 septembre 2019}}
|
|
|-
|14.0
|13 mars 2020
|
|
|-
|15.0
|septembre 2020
|
|-
|16.0
|mars 2021
|
|-
|17.0
|septembre 2021
|Soutien à long terme jusqu'en septembre 2026
|-
|18.0
|mars 2022
|
|-
|19.0
|septembre 2022
|
|-
|20.0
|mars 2023
|
|-
|21.0
|septembre 2023
|Soutien à long terme
|}
|}

== Exemple ==
Ci-dessous, un exemple de programme affichant le message "[[Hello world|Hello World]]":<syntaxhighlight lang="java" line="1">
import javafx.application.Application;
import javafx.scene.control.Label;
import javafx.stage.Stage;
import javafx.application.Platform;
import javafx.scene.Scene;

public class Main extends Application {
// Point d'entrée du programme
public static void main(String[] args) {
launch(args); // Appel du point d'entrée de l'application JavaFx (voir ci-dessous)
}
// Point d'entrée de l'application JavaFX
@Override
public void start(Stage primaryStage) {

// Définition du titre de la fenêtre de l'application
primaryStage.setTitle("Titre de la fenêtre");
// Appel d'une méthode permettant une fermeture propre de l'application
primaryStage.setOnCloseRequest(e -> Platform.exit());
// Création de la scène (avec des dimensions correspondant à une résolution HD), composé uniquement d'une étiquette affichant du texte
primaryStage.setScene(new Scene(new Label("Hello world !"), 1280, 720));
// Affichage de la fenêtre
primaryStage.show();
}
}
</syntaxhighlight>


== Bibliothèques ==
== Bibliothèques ==
Ligne 132 : Ligne 203 :


== Scene Builder: l'outil de conception d'interfaces ==
== Scene Builder: l'outil de conception d'interfaces ==
{{Article détaillé|Scene Builder}}
[[Fichier:Scene builder.png|vignette|Interface de Scene Builder]]
[[Fichier:Scene builder.png|vignette|Interface de Scene Builder]]
'''Scene Builder''' est un [[Constructeur d'interface graphique|outil interactif de conception d'interface graphique]] pour JavaFX. Il permet de créer des interfaces utilisateurs rapidement et sans avoir besoin de [[Programmation informatique|coder]]: il en résulte des fichiers au format [[Extensible Markup Language|XML]] qui sont ensuite chargés par le programme pour afficher une interface graphique à ses utilisateurs.
'''Scene Builder''' est un [[Constructeur d'interface graphique|outil interactif de conception d'interface graphique]] pour JavaFX. Il permet de créer des interfaces utilisateurs rapidement et sans avoir besoin de [[Programmation informatique|coder]]: il en résulte des fichiers au format [[FXML]] qui sont ensuite chargés par le programme pour afficher une interface graphique à ses utilisateurs.


Développé initialement par Oracle et sous le nom JavaFX Scene Builder<ref>{{Lien web|langue=anglais|titre=JavaFX Scene Builder Information|url=https://www.oracle.com/technetwork/java/javase/downloads/javafxscenebuilder-info-2157684.html|site=oracle.com|périodique=|date=|consulté le=25 mars 2019}}</ref>, son code source a été publié en [[open source]] à partir de sa version 2.0<ref>{{Lien web|langue=|titre=JavaFX Scene Builder devient open source, dans le cadre du projet OpenJFX|url=https://www.developpez.com/actu/65182/JavaFX-Scene-Builder-devient-open-source-dans-le-cadre-du-projet-OpenJFX/|site=developpez.com|périodique=|date=5 décembre 2013|consulté le=25 mars 2019}}</ref>.
Développé initialement par Oracle et sous le nom JavaFX Scene Builder<ref>{{Lien web|langue=anglais|titre=JavaFX Scene Builder Information|url=https://www.oracle.com/technetwork/java/javase/downloads/javafxscenebuilder-info-2157684.html|site=oracle.com|périodique=|date=|consulté le=25 mars 2019}}</ref>, son code source a été publié en [[open source]] à partir de sa version 2.0<ref>{{Lien web|langue=|titre=JavaFX Scene Builder devient open source, dans le cadre du projet OpenJFX|url=https://www.developpez.com/actu/65182/JavaFX-Scene-Builder-devient-open-source-dans-le-cadre-du-projet-OpenJFX/|site=developpez.com|périodique=|date=5 décembre 2013|consulté le=25 mars 2019}}</ref>.
Ligne 143 : Ligne 215 :
| commons = Category:JavaFX
| commons = Category:JavaFX
| commons titre = JavaFX
| commons titre = JavaFX
| wikibooks = Programmation JavaFX
}}
}}


Ligne 149 : Ligne 222 :
*[[Plate-forme Java]]
*[[Plate-forme Java]]
*[[Machine virtuelle Java]]
*[[Machine virtuelle Java]]
*[[Swing (Java)|Swing]]
*[[Liste de bibliothèques d'interface utilisateur]]
*[[Scene Builder]]


=== Liens externes ===
=== Liens externes ===
Ligne 158 : Ligne 234 :
{{Références|taille=|groupe=}}
{{Références|taille=|groupe=}}


{{Palette|Java (Oracle)}}
{{Palette|Java (Oracle)|Interface graphique}}
{{Palette|Interface graphique}}
{{Portail|informatique|programmation informatique}}
{{Portail|informatique|programmation informatique}}


[[Catégorie:Java]]
[[Catégorie:Java (langage)]]
[[Catégorie:Interface utilisateur]]
[[Catégorie:Interface utilisateur]]
[[Catégorie:Framework de programmation]]
[[Catégorie:Framework de programmation]]
[[Catégorie:Interface de programmation]]
[[Catégorie:Interface de programmation]]
[[Catégorie:Plateforme Java]]
[[Catégorie:Plateforme Java]]
[[Catégorie:Bibliothèque logicielle graphique]]
[[Catégorie:Bibliothèque logicielle Java]]

Dernière version du 21 juillet 2024 à 09:55

JavaFX
Description de l'image JavaFX Logo.png.
Description de cette image, également commentée ci-après
Capture d'écran qui montre la fenêtre d'un programme fictif créé avec JavaFX
Informations
Créateur Sun Microsystems
Développé par Oracle et la communauté OpenJFX
Première version
Dernière version 21.0.2 ()
Version avancée 22 ()
Dépôt JavaFX sur GitHub
État du projet  Actif
Écrit en Java, C++, C
Environnement Multi-plateforme
Langues Anglais
Type Bibliothèque logicielle
Politique de distribution Gratuit
Licence GPL
Site web https://openjfx.io/

Chronologie des versions

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.

Créé à l'origine par Sun MicroSystems, puis développé par Oracle après son rachat et ce, jusqu'à la version 11 du JDK, c'est depuis lors à la communauté OpenJFX que revient la poursuite de son développement[1].

Cette bibliothèque a été conçue pour remplacer Swing et AWT, qui ont été développés à partir de la fin des années 90, pour pallier les défauts de ces derniers et fournir de nouvelles fonctionnalités (dont le support des écrans tactiles).

Le cycle de sortie d'une nouvelle version de JavaFX correspond à celui de Java, soit tous les 6 mois.

À ses débuts, les développeurs devaient utiliser le langage de script JavaFX Script pour pouvoir décrire une interface utilisateur et la bibliothèque ne permettait de concevoir que des applications internet riches.

Depuis la version 2.0, il s'agit d'une véritable API qui est proposé sous la forme d'une bibliothèque tierce et qui plus est, devient open source[2].

Avec l'apparition de la version 8 de Java (en ), JavaFX devient la bibliothèque de création d'interface graphique officielle du langage Java, le développement de son prédécesseur Swing (avec AWT) étant abandonné, excepté pour les corrections de bogues.

Depuis la version 11 de Java, le projet est dissocié du JDK, pour suivre son propre processus de développement. Toutefois, le numéro de version de JavaFX concorde avec celui du JDK pour indiquer sa compatibilité (car toute application JavaFX est basée sur le JDK).

Exemple de scène 3D simple utilisant JavaFX.

JavaFX est composé des 7 modules suivants:

  • javafx.base: Définit l'API de base
  • javafx.controls: Définit la majorité des composants graphiques de l'API
  • javafx.fxml: Définit l'API relative au langage FXML qui permet de décrire une interface utilisateur d'une manière alternative à l'écriture de lignes de code
  • javafx.graphics: Définit l'API relative aux conteneurs, animations, effets visuels, formes 2D et 3D, images, impression, fenêtres, événements, robots, au support du CSS et à l'application
  • javafx.media: Définit l'API dédié à la lecture de contenu audio et vidéo
  • javafx.swing: Définit l'API qui fournit le support d’interopérabilité entre JavaFX et Swing
  • javafx.web: Définit l'API dédié à l'affichage de contenu web (notamment un éditeur HTML et un moteur de rendu de pages web basé sur WebKit)
Liste des versions de JavaFX[2],[3],[4]
Numéro de version Date de sortie Note
1.0 JavaFX Script ; le code source est fermé
1.1
1.2
1.3 Intégration des diagrammes ; support du CSS
1.3.1
2.0 Il s'agit désormais d'une API et non d'un langage de script ; FXML
2.1 Support de MacOS
2.2 Support de Linux ; nouveaux composants graphiques
8.0 Intégration de JavaFX au JDK 8
9.0 Modularisation de JavaFX
10.0
11.0 Devient un module à part entière du JDK
12.0
13.0
14.0 13 mars 2020
15.0 septembre 2020
16.0 mars 2021
17.0 septembre 2021 Soutien à long terme jusqu'en septembre 2026
18.0 mars 2022
19.0 septembre 2022
20.0 mars 2023
21.0 septembre 2023 Soutien à long terme

Ci-dessous, un exemple de programme affichant le message "Hello World":

import javafx.application.Application;
import javafx.scene.control.Label;
import javafx.stage.Stage;
import javafx.application.Platform;
import javafx.scene.Scene;

public class Main extends Application {
    
    // Point d'entrée du programme
    public static void main(String[] args) {
        launch(args); // Appel du point d'entrée de l'application JavaFx (voir ci-dessous)
    }
    
    // Point d'entrée de l'application JavaFX
    @Override
    public void start(Stage primaryStage) {

        // Définition du titre de la fenêtre de l'application
        primaryStage.setTitle("Titre de la fenêtre");
        
        // Appel d'une méthode permettant une fermeture propre de l'application
        primaryStage.setOnCloseRequest(e -> Platform.exit());
        
        // Création de la scène (avec des dimensions correspondant à une résolution HD), composé uniquement d'une étiquette affichant du texte
        primaryStage.setScene(new Scene(new Label("Hello world !"), 1280, 720));
        
        // Affichage de la fenêtre
        primaryStage.show();
    }
}

Bibliothèques

[modifier | modifier le code]

Des projets de bibliothèques viennent compléter les fonctionnalités de JavaFX. Parmi eux, on peut citer les projets suivants:

  • ControlsFX: ensemble de composants graphiques
  • JFXtras: ensemble de composants graphiques
  • JFoenix: fournit une interface dans le style Material design
  • CalendarFX: permet de créer des calendriers
  • FormsFX: permet de faciliter la création de formulaires
  • TilesFX: ensemble de widgets pour le développement d'un tableau de bord

Scene Builder: l'outil de conception d'interfaces

[modifier | modifier le code]
Interface de Scene Builder

Scene Builder est un outil interactif de conception d'interface graphique pour JavaFX. Il permet de créer des interfaces utilisateurs rapidement et sans avoir besoin de coder: il en résulte des fichiers au format FXML qui sont ensuite chargés par le programme pour afficher une interface graphique à ses utilisateurs.

Développé initialement par Oracle et sous le nom JavaFX Scene Builder[5], son code source a été publié en open source à partir de sa version 2.0[6].

Depuis, le logiciel est principalement développé et soutenu par la société Gluon[7].

Sur les autres projets Wikimedia :

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]

Références

[modifier | modifier le code]
  1. « JDK 11 update: JavaFX will be decoupled from the JDK », sur jaxenter.com, JAXenter, (consulté le )
  2. a et b (en) « Repositories and Releases », sur OpenJDK Wiki, (consulté le )
  3. (en) « What is JavaFX ? », sur thoughtco.com, ThoughtCo., (consulté le )
  4. (en) « JavaFX 8: New and Noteworthy », sur SlidePlayer, (consulté le )
  5. (en) « JavaFX Scene Builder Information », sur oracle.com (consulté le )
  6. « JavaFX Scene Builder devient open source, dans le cadre du projet OpenJFX », sur developpez.com, (consulté le )
  7. (en) « Scene Builder », sur gluonhq.com (consulté le )