Article de reference

JavaFX

{{Cite web |last=openjdk |title=Release 26-ga · openjdk/jfx |url=https://github.com/openjdk/jfx/releases/tag/26-ga |access-date=2026-04-12 |website=GitHub |language=en}} "},"lat...

plateforme logicielle permettant de créer et de déployer des applications de bureau , ainsi que des applications web riches compatibles avec une grande variété d'appareils. JavaFX prend en charge les ordinateurs de bureau et les navigateurs web sous Microsoft Windows , Linux (y compris Raspberry Pi ) et macOS , ainsi que les appareils mobiles fonctionnant sous iOS et Android , via Gluon Mobile.

Avec la sortie de JDK 11 en 2018, Oracle a fait de JavaFX une partie d' OpenJDK dans le cadre du projet OpenJFX , afin d'accélérer son développement.

Le logiciel libre JavaFXPorts fonctionne sur Android et iOS (iPhone et iPad). Le logiciel commercial associé, créé sous le nom de « Gluon », prend en charge les mêmes plateformes mobiles et propose des fonctionnalités supplémentaires, ainsi qu'une version pour ordinateur. Ceci permet de développer des applications pour ordinateurs, appareils Android et iOS à partir d'une seule base de code source.

des API spécifiques aux ordinateurs ou aux appareils mobiles. Par exemple, le profil JavaFX pour ordinateurs de bureau inclut Swing et des effets visuels avancés. JavaFX place tous ses symboles dans l'espace de noms `javaFX` javafx.

Pour l'utilisateur final, la fonctionnalité « Glisser-déposer pour installer » permet de glisser un widget JavaFX (une application hébergée sur un site web) et de le déposer sur son bureau. L'application conserve son état et son contexte même après la fermeture du navigateur. Il est également possible de la relancer en cliquant sur un raccourci créé automatiquement sur le bureau de l'utilisateur. Ce comportement est intégré au mécanisme des applets Java depuis la mise à jour Java 6u10 et est exploité par JavaFX depuis la couche Java sous-jacente. Sun présente « Glisser-déposer pour installer » comme l'ouverture d'un nouveau modèle de distribution et la possibilité pour les développeurs de s'affranchir du navigateur.

JavaFX 1.x incluait un ensemble de modules d'extension pour Adobe Photoshop et Illustrator permettant d'intégrer directement des graphismes avancés dans les applications JavaFX. Ces modules génèrent du code JavaFX Script qui préserve les calques et la structure des graphismes. Les développeurs peuvent ensuite ajouter des animations ou des effets aux graphismes statiques importés. Un outil de conversion de graphismes SVG (également connu sous le nom de Media Factory) permettait également d'importer des graphismes et de prévisualiser les ressources après leur conversion au format JavaFX.

Avant la version 2.0 de JavaFX, les développeurs utilisaient un langage déclaratif statiquement typé appelé JavaFX Script pour créer des applications JavaFX. Comme JavaFX Script était compilé en bytecode Java , les programmeurs pouvaient également utiliser du code Java . Les applications JavaFX antérieures à la version 2.0 pouvaient s'exécuter sur n'importe quel ordinateur capable d'exécuter Java SE , tout comme c'est le cas avec les versions actuelles.

JavaFX 2.0 et versions ultérieures sont implémentés sous forme de bibliothèque Java, et les applications utilisant JavaFX sont écrites en code Java standard. Le langage de script a été abandonné par Oracle, mais son développement s'est poursuivi pendant quelques années dans le cadre du projet Visage, pour finalement s'achever en 2013.

Sun Microsystems a acquis la licence d'une police de caractères personnalisée appelée Amble pour une utilisation sur les appareils fonctionnant sous JavaFX. Cette famille de polices a été conçue par d'interfaces utilisateur mobiles , et est disponible dans la version 1.3 du kit de développement logiciel (SDK) JavaFX.WebView , le composant de navigateur Web intégré , utilise le moteur de navigateur WebKit . Il prend en charge les fonctionnalités HTML5 habituelles telles que les balises canvas, media, meter, progress, details et summary, ainsi que MathML, SVG, JavaScript et CSS. La prise en charge de WebAssembly n'est pas activée.

3D

Depuis JavaFX 8, JavaFX dispose de fonctionnalités 3D, telles que l'éclairage dynamique, les formes de base, les maillages, le mappage de textures, etc. Ces composants peuvent être intégrés dans des scènes et des sous-scènes.

JavaFX Mobile

les applications web riches destinées aux appareils mobiles . Les applications JavaFX Mobile 1.x pouvaient être développées dans le même langage, JavaFX Script , que les applications JavaFX 1.x pour navigateur ou ordinateur, et à l'aide des mêmes outils : le kit de développement logiciel (SDK) JavaFX et la suite de production JavaFX. Ce concept permettait de partager le code source et les ressources graphiques entre les applications de bureau et mobiles. Grâce à l'intégration avec Java ME , les applications JavaFX accédaient aux fonctionnalités du terminal, telles que le système de fichiers , l'appareil photo, le GPS , le Bluetooth ou l'accéléromètre .

Plateforme d'application indépendante construite sur Java, JavaFX Mobile est capable de fonctionner sur plusieurs systèmes d'exploitation mobiles, notamment Android , Windows Mobile et des systèmes d'exploitation propriétaires en temps réel .

JavaFX Mobile a été rendu public dans le cadre de la version JavaFX 1.1 annoncée par Sun Microsystems le 12 février 2009.

Sun prévoyait d'intégrer nativement JavaFX à ses appareils en collaborant avec les fabricants de combinés et les opérateurs mobiles pour préinstaller l'environnement d'exécution JavaFX Mobile. Une démonstration de JavaFX Mobile sous Android a été présentée à JavaOne 2008 et des partenariats ciblés (notamment avec LG Electronics et Sony Ericsson ) ont été annoncés lors du lancement de JavaFX Mobile en février 2009.

Exemple

Pour lancer une application JavaFX, la classe principale étend javafx.application.Applicationet main()appelle Application::launchqui appelle en interne Application::start, qui est surchargée par la classe principale et sert de point d'entrée de l'application elle-même.

System.out.println(\"Hello from JavaFX!\")); StackPane root = new StackPane(button); Scene scene = new Scene(root, 300, 200); primaryStage.setTitle(\"JavaFX Example\"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } "
paquet org.wikipedia.examples ;import javafx.application.Application ; import javafx.scene.Scene ; import javafx.scene.control.Button ; import javafx.scene.layout.StackPane ; import javafx.stage.Stage ;public class JavaFXExample extends Application { @Override public void start ( Stage primaryStage ) { Button button = new Button ( "Cliquez ici !" ); button . setOnAction ( e -> System . out . println ( "Bonjour de JavaFX !" ));StackPane racine = new StackPane ( bouton ); Scene scène = new Scene ( racine , 300 , 200 );primaryStage.setTitle ( " Exemple JavaFX " ) ; primaryStage.setScene ( scene ) ; primaryStage.show ( ) ; }public static void main ( String [] args ) { launch ( args ); } }

Composants

La plateforme JavaFX comprend les composants suivants :

  • Le kit de développement logiciel ( SDK) JavaFX : comprenant notamment des éléments graphiques, des services multimédias, des bibliothèques de texte enrichi et la vue Web.
  • NetBeans IDE pour JavaFX : NetBeans propose une palette glisser-déposer pour ajouter des objets avec transformations, effets et animations, ainsi qu’un ensemble d’exemples et de bonnes pratiques. Pour les utilisateurs d’Eclipse, un plugin communautaire est disponible sur e(fx)clipse.
  • JavaFX Scene Builder : introduit avec JavaFX 2.1 et versions ultérieures, cet outil permet de créer une interface utilisateur (IU) par glisser-déposer de contrôles depuis une palette. La mise en page est enregistrée dans un fichier FXML, un format XML spécifique.

Modules

JavaFX est divisé en modules comme suit :

NomDescription
Swing pour le kit d'outils d'interface utilisateur JavaFX.
JavaScript .
Java 8 (publié le 18 mars 2014) et a la même numérotation, c'est-à-dire JavaFX 8.

JavaFX 8 ajoute plusieurs nouvelles fonctionnalités, notamment :

Exemple de scène 3D simple utilisant JavaFX
  • Prise en charge des graphismes 3D
  • Support des capteurs
  • Prise en charge de MathML, avec JavaFX 8 Update 192
  • Prise en charge de l'impression et du texte enrichi
  • Modèles de dialogue génériques pour remplacer JOptionPane (à partir de JavaFX 8u40)

Les fonctionnalités de JavaFX 9 étaient axées sur l'extraction de certaines API privées utiles du code JavaFX afin de rendre ces API publiques :

  • JEP 253 : Préparer les contrôles d’interface utilisateur JavaFX et les API CSS pour la modularisation

Oracle a annoncé son intention de ne plus inclure JavaFX dans ses versions de JDK 11 et ultérieures. Il n'est plus inclus dans la dernière version.

JavaFX 11 a été lancé en septembre 2018.

  • JavaFX 11.0.2 est la dernière version publique de JavaFX 11.
  • JavaFX 11.0.16 est la dernière version de JavaFX 11 pour ceux qui disposent d'un contrat de support à long terme.
  • Prise en charge de MathML
  • API FX Robot

JavaFX 12 a été initialement distribué en mars 2019.

  • JavaFX 12.0.1.
  • Prise en charge des boutons avant/arrière de la souris
  • Nouvelles méthodes VirtualFlow protégées pour la sous-classification

JavaFX 13 a été lancé en septembre 2019.

  • Prise en charge des écrans à encre électronique
  • Prise en charge du rendu multimédia natif, via WritableImages pris en charge par NIO ByteBuffers

JavaFX 14 a été lancé en mars 2020.

  • Propriété de taille d'onglet pour Text et TextFlow
  • Prise en charge de HTTP/2 dans WebView

JavaFX 15 a été lancé en septembre 2020.

  • Prise en charge des écrans à encre électronique sur les appareils i.MX6

JavaFX 16 a été lancé en mars 2021.

JavaFX 17 a été lancé en septembre 2021. Points forts :

  • Type de projecteur 3D
  • Charger les images et les feuilles de style à partir des URI de données en ligne
  • Imprimer dans des fichiers
  • Consulter l'état des touches VERR MAJ et VERR NUM
  • Prise en charge de plusieurs écrans dans la boîte à outils de fenêtrage pour les plateformes embarquées

JavaFX 18 a été lancé en mars 2022. Points forts :

  • Prise en charge du codec multimédia H.265/HEVC dans le lecteur vidéo
  • Type de lumière directionnelle 3D
  • Arrière-plans transparents dans WebView
  • Définissez la propriété « managed » des nœuds à partir du CSS
  • Méthodes de fabrication pour la bordure et l'arrière-plan

JavaFX 19 a été lancé en septembre 2022. Points forts :

  • Prise en charge du streaming HTTP en direct H.265/HEVC dans le lecteur vidéo
  • Liaisons fluides avec lambdas : map, flatMap et orElse
  • pseudo-classes CSS :focus-visible et :focus-within

JavaFX 20 a été lancé en mars 2023. Points forts :

  • Politiques de redimensionnement contraintes pour TableView et TreeTableView
  • Amélioration du cycle de vie des thèmes d'interface utilisateur (Skin::install)
  • Une manière simplifiée et déterministe de gérer les écouteurs (ObservableValue::when)

Sorties anticipées

JavaFX Script, le composant de script de JavaFX, a vu le jour en tant que projet de Chris Oliver appelé F3.

Sun Microsystems a annoncé JavaFX pour la première fois lors de la conférence mondiale des développeurs Java JavaOne en mai 2007.

En mai 2008, Sun Microsystems a annoncé son intention de proposer JavaFX pour navigateur et ordinateur de bureau au cours du troisième trimestre 2008, et pour appareils mobiles au cours du deuxième trimestre 2009. Sun a également annoncé un accord pluriannuel avec On2 Technologies afin d'intégrer des fonctionnalités vidéo complètes à la gamme de produits JavaFX grâce au codec vidéo TrueMotion d'On2 . Depuis fin juillet 2008, les développeurs peuvent télécharger une version préliminaire du kit de développement logiciel (SDK) JavaFX pour Windows et macOS, ainsi que le plugin JavaFX pour NetBeans 6.1 .

Depuis la version 1.1 de JavaFX, les versions majeures portent un nom inspiré d'une rue ou d'un quartier de San Francisco . Les mises à jour, quant à elles, n'ont généralement pas de nom.

Le 4 décembre 2008, Sun a publié JavaFX 1.0.2.

JavaFX pour le développement mobile a finalement été mis à disposition dans le cadre de la version JavaFX 1.1 (nommée Franca ) annoncée officiellement le 12 février 2009.

JavaFX 1.2 (nommé Marina ) a été publié à JavaOne le 2 juin 2009. Cette version a introduit :

JavaFX 1.3 (nommé Soma ) a été publié le 22 avril 2010. Cette version a introduit :

  • Améliorations des performances
  • Prise en charge de plateformes supplémentaires
  • Amélioration de la prise en charge des commandes d'interface utilisateur

JavaFX 1.3.1 a été publié le 21 août 2010. Cette version a introduit :

  • Démarrage rapide de l'application JavaFX
  • Barre de progression personnalisée pour le démarrage de l'application

JavaFX 2.0 (nommé Presidio ) a été publié le 10 octobre 2011. Cette version a introduit :

  • Un nouvel ensemble d'API Java ouvre les fonctionnalités de JavaFX à tous les développeurs Java, sans qu'ils aient besoin d'apprendre un nouveau langage de script. La prise en charge de JavaFX Script a été définitivement abandonnée.
  • Prise en charge de la liaison paresseuse haute performance, des expressions de liaison, des expressions de séquences liées et de la réévaluation partielle de la liaison.
  • Abandon de la prise en charge de JavaFX Mobile .
  • Oracle annonce son intention de rendre JavaFX open source.
  • L'environnement d'exécution JavaFX devient spécifique à la plateforme, utilisant les capacités du système, comme le codec vidéo disponible sur le système ; au lieu d'implémenter un seul environnement d'exécution multiplateforme comme avec JavaFX 1.x.

Diverses améliorations ont été apportées aux bibliothèques JavaFX pour le multithreading. Les API Task ont ​​été mises à jour afin de prendre en charge des fonctionnalités de threading beaucoup plus concises (la classe JavaTaskBase n'est plus nécessaire puisque toutes les API sont en Java, et l'exigence d'une interface de rappel et d'une classe d'implémentation Java n'est plus requise). De plus, le graphe de scène a été conçu pour permettre la construction de scènes sur des threads d'arrière-plan, puis leur rattachement à des scènes actives de manière thread-safe .

Le 26 mai 2011, Oracle a publié la version bêta de JavaFX 2.0. Cette version était uniquement disponible pour les versions 32 et 64 bits de Microsoft Windows XP, Windows Vista et Windows 7. Une version en accès anticipé pour Mac OS X était également proposée aux membres du programme partenaires JavaFX. La prise en charge de Linux était prévue pour une version ultérieure. JavaFX 2.0 a été initialement publié avec une compatibilité limitée à Windows. La prise en charge de Mac OS X a été ajoutée avec JavaFX 2.1 et celle de Linux avec JavaFX 2.2.

JavaFX 2.0 utilise un nouveau langage XML déclaratif appelé FXML .

Le 27 avril 2012, Oracle a publié la version 2.1 de JavaFX, qui comprend les principales fonctionnalités suivantes :

  • Première version officielle pour OS X (ordinateur de bureau uniquement)
  • Prise en charge des formats H.264/MPEG-4 AVC et du codage audio avancé ( AVC).
  • Texte CoolType
  • Améliorations de l'interface utilisateur, notamment les contrôles de type liste déroulante, les graphiques (graphiques empilés) et les barres de menus.
  • Le composant Webview permet désormais à JavaScript d'effectuer des appels à des méthodes Java.

Le 14 août 2012, Oracle a publié la version 2.2 de JavaFX, qui comprend les principales fonctionnalités suivantes :

  • Prise en charge de Linux (y compris les plugins et le démarrage web)
  • Toile
  • Nouvelles commandes : sélecteur de couleurs, pagination
  • Prise en charge de la diffusion en direct HTTP
  • Événements tactiles et gestes
  • API de manipulation d'images
  • Emballage natif

JavaFX 2.2 introduit une nouvelle option d'empaquetage appelée « Native Packaging », permettant de conditionner une application sous forme de « bundle natif ». Les utilisateurs peuvent ainsi installer et exécuter une application sans aucune dépendance externe vis-à-vis d'un JRE système ou d'un SDK FX.

À partir d'Oracle Java SE 7 update 6 et JavaFX 2.2, JavaFX est intégré à la plateforme Oracle Java SE.

Travaux futurs

Oracle a également annoncé en novembre 2012 l'ouverture du code source de Decora, un langage DSL Shader pour JavaFX permettant de générer des shaders pour OpenGL et Direct3D .

Oracle a indiqué dans sa feuille de route relative au support client que les nouveaux correctifs JavaFX continueront d'être pris en charge sur Java SE 8 jusqu'en mars 2025. Auparavant, Oracle avait annoncé collaborer avec des tiers intéressés afin de faciliter la création et la maintenance de JavaFX en tant que module open source distribuable séparément. JavaFX continuera d'être pris en charge par la société Gluon sous forme de module téléchargeable, en complément du JDK.

Disponibilité

En mars 2014, JavaFX était déployé sur Microsoft Windows , macOS et Linux . Oracle disposait d'un portage interne de JavaFX sur iOS et Android . La prise en charge d'ARM était disponible à partir de JavaFX 8. Le 11 février 2013, Richard Bair, architecte en chef de la plateforme Java cliente chez Oracle, a annoncé qu'Oracle publierait en open source les implémentations iOS et Android de sa plateforme JavaFX dans les deux mois suivants.

À partir de la version 8u33 du JDK pour ARM, la prise en charge de JavaFX Embedded a été supprimée.

La prise en charge des architectures basées sur x86 se poursuivra.

A commercial port of JavaFX for Android and iOS has been created under the name "Gluon".

License

There are various licenses for the previous modules that used to compose the JavaFX runtime:

During development, Sun explained they will roll out their strategy for the JavaFX licensing model for JavaFX first release. After the release in 2008, Vice president for Client Software, explained that they will soon publish a specification for JavaFX and its associated file formats, and will continue to open-source the JavaFX runtime, and decouple this core from the proprietary parts licensed by external parties.

At JavaOne 2011, Oracle Corporation announced that JavaFX 2.0 would become open-source. Since December 2011, Oracle began to open-source the JavaFX code under the GPL+linking exception.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index