title: FXML
text: # FXML
  
  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.
  
  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.
  
  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.
  
  ## Exemple
  
  L'exemple ci-dessous décrit une liste verticale contenant deux boutons, avec un espacement de 10 pixels entre eux.
  
  ## Avantages et inconvénients
  
  ### Avantages
  
  * 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
  
  * 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.
  