Les différentes amélioration de JavaFX 25

Le framework de développement de clients riches pour Java passe en version 25. Elle comprend notamment plusieurs évolutions sur les feuilles de styles, sur la barre de titre,…

Devenue autonome par rapport à Oracle en 2018, la communauté JavaFX ne cesse de mette à jour le framework de développement de clients riches pour Java. En parallèle du lancement du JDK 25, JavaFX passe lui aussi en version 25 en apportant son lot d’optimisation et d’amélioration. Ainsi, le framework propose en avant-première des contrôles pour la barre de titre. Un style Stage est défini dans lequel la zone client est étendue à la zone de la barre d’en-tête. Il n’y a donc plus de séparation entre les deux régions et les applications peuvent ainsi placer des nœuds de graphe de scène dans la zone de la barre d’en-tête de Stage. Cette fonctionnalité fournit les boutons d’en-tête par défaut (iconifier, maximiser, fermer), mais pas de barre d’en-tête déplaçable apportée par le système. Les applications fournissent leur propre barre d’en-tête en plaçant un contrôle HeaderBar dans le graphe de scène, positionné en haut de la fenêtre.

Exemple de contrôle sur la barre de titre pour Windows. (Crédit Photo: Oracle)

JavaFX 25 comprend d’autres fonctionnalités, notamment la possibilité de styliser les surlignages RichTextArea à l’aide de CSS, l’ajout de requêtes média à JavaFX CSS. Le framework a eu recours à l’overloading pour les méthodes suivantes qui répertorient les styles CSS :

-RichParagraph::addHighlight

-RichParagraph::addWavyUnderline

-SimpleViewOnlyStyledModel::highlight

-SimpleViewOnlyStyledModel::addWavyUnderline

Des méthodes basées sur la géométrie

JavaFX 25 ajoute également des méthodes basées sur la géométrie à Text et TextFlow afin de fournir les API manquantes et la bonne prise en compte des marges et du remplissage dans TextFlow. De même, le framework introduit aussi TabStopPolicy pour TextFlow, qui permet aux applications de définir des tabulations en fonction d’une position géométrique dans la ligne de texte plutôt que d’un nombre fixe de caractères. Cette méthode est plus adaptée aux polices proportionnelles et à l’espacement fixe et elle améliore la prise en charge du texte enrichi.

Le framework propose TabStopPolicy pour Textflow. (Crédit Photo: Oracle)

L’ajout de requêtes média dans JavaFX CSS permet aux feuilles de style de tester dynamiquement des aspects spécifiques de la scène JavaFX. Les requêtes média sont indépendantes du contenu du graphe de scène, de son style ou de tout autre aspect interne. Enfin, un nouvel objet LayoutInfo pour la mise en page du texte contient un instantané de la géométrie de la mise en page du texte dans un nœud Text ou TextFlow. Cela comprend une liste de lignes de texte, des formes dérivées de la mise en page (sélection, soulignement, barré, etc.) et des informations sur le curseur. Par ailleurs, avec JavaFX 25, il n’est plus nécessaire de passer –sun-misc-unsafe-memory-access=allow à java sur la ligne de commande lors de l’exécution d’applications basées sur le framework. Le bogue qui rendait auparavant cette option nécessaire a été corrigé.

L’annonce de la sortie de JavaFX 25 a été publiée sur le site Web Inside Java d’Oracle le 23 septembre, bien que Gluon ait été crédité pour avoir réalisé la majeure partie du travail sur le projet. La version est téléchargeable sur jdk.java.net.

chevron_left
chevron_right