FXML — Wikipédia

FXML
Caractéristiques
Extension
.fxml
Développé par
Version initiale
Octobre 2011
Type de format
Texte
Basé sur
Spécification

FXML est un format de données textuelles, dérivé du format XML, qui permet de décrire une interface utilisateur pour des applications conçus avec JavaFX[1].

Il s'agit d'une alternative à la conception d'interfaces réalisés par l'écriture de lignes de codes, en découplant l'interface graphique du code source qui le contrôle.

Cette technologie a été intégrée dans JavaFX à partir de sa version 2.0, pour remplacer JavaFX Script[2].

Pour faciliter la manipulation de ce format de données, le logiciel Scene Builder a été développé par Oracle, permettant ainsi de décrire rapidement des interfaces[3].

L'exemple ci-dessous décrit une liste verticale contenant deux boutons, avec un espacement de 10 pixels entre eux.

<?xml version="1.0" encoding="UTF-8"?>  <?import javafx.scene.control.Button?> <?import javafx.scene.layout.VBox?>   <VBox alignment="CENTER" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="300.0" prefWidth="300.0" spacing="10.0" xmlns="http://javafx.com/javafx/10.0.1" xmlns:fx="http://javafx.com/fxml/1">    <children>       <Button mnemonicParsing="false" text="Bouton" />       <Button mnemonicParsing="false" text="Bouton" />    </children> </VBox> 

Avantages et inconvénients[4]

[modifier | modifier le code]
  • Le principal avantage à cette manière de décrire une interface utilisateur est la séparation distincte entre la vue et le contrôleur
  • N'étant pas un langage compilé mais interprété, il suffit de recharger un fichier FXML pour mettre à jour la vue
  • Il est possible d'avoir plusieurs versions d'une même vue, utile notamment dans le cas de la phase de développement d'un logiciel
  • Il y a une gestion native de la localisation, ce qui permet d'afficher le texte utilisé par l'interface en fonction d'une langue

Inconvénients

[modifier | modifier le code]
  • La vitesse de chargement d'une l'application JavaFX sera un peu plus lente, en raison de la lecture de fichiers au format FXML et l’interprétation des données qu'ils contiennent
  • Il ne permet que de décrire que des interfaces "statiques", c'est-à-dire que le contenu n'est pas censé changer dans le temps: autrement, il faut nécessairement passer par l'écriture de code source.
  • Étant donné que la technologie utilise la réflexion pour générer l'interface, le débogage du programme peut être délicat.

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]

Références

[modifier | modifier le code]
  1. (en) « Introduction to FXML », sur openjfx.io, (consulté le )
  2. (en) « JavaFX 2.0 Release Notes », sur docs.oracle.com, (consulté le )
  3. (en) « JavaFX Scene Builder », sur oracle.com (consulté le )
  4. (en) « Mastering FXML: Why use FXML », sur docs.oracle.com, (consulté le )