Introduction au FXMLComment définir son UI hors de son code source en JavaFX.Cet article a pour but de vous initier au FXML, le nouveau langage basé sur XML utilisé par JavaFX pour permettre de découpler le design des interfaces graphiques du code qui les manipule et les contrôle.Texte affiché avant le sommaire.
Multipage.
Texte de la licence de remplacement Référence de la licence de remplacement
2 : Débutant Durée de lecture
Liens supplémentaires.
I.Introduction
Découpler la définition des interfaces utilisateur du code n’a rien d’un concept nouveau : inclure des pages et des pages entières de code dans un projet pour définir ne serait-ce qu’un simple formulaire avec un bouton de validation correctement positionné est probablement une étape par laquelle nous sommes tous passés… sauf peut-être les habitués de Visual Studio puisque Microsoft pris ce virage très tôt dans la conception de ses outils de développement. Ce n’est pas pour rien que les langages de définition d’interface graphique par balisage (
User Interface Markup Language) fleurissent sur la toile.
Coté Java, les choses ont longtemps été à la traine : même si NetBeans et Eclipse disposent désormais d’éditeurs graphiques performant pour Swing et leur propres
application frameworks, l’accouchement a été plutôt difficile et il s’agit dans tous les cas d’une surcouche rajouté par-dessus l’API standard. En essayant d’intégrer une prise en charge directe par la plateforme, Oracle a tout d’abord effectué un premier essai avec FXD dans JavaFX 1.x. Le FXD permettait de décrire des UI dans un langage de script simple qui était un sous-ensemble du langage JavaFX Script utilisé dans l’API de l’époque. Le problème évident était qu’il s’agissait d’un nouveau langage à part entière, la plateforme est restée peu populaire.
Avec le retour vers Java dans JavaFX 2.x, et l’ouverture des runtimes à tous les langages tournant sur la JVM, Oracle a, au contraire, décidé de s’inspirer de ce qui se faisait déjà sur le marché : le MXML largement utilisé par Flex et Flash d’Adobe ou encore le XAML de Microsoft destiné à Silverlight et WPF. Voici donc venir le FXML, un nouveau dérivé du langage de balisage XML, directement pris en charge par les runtimes JavaFX et accompagné de nouveaux outils.
II.Les Bases
Un fichier au format FXML est donc un document écrit en XML contenant le descriptif d’une arborescence graphique dans l’API SceneGraph. Un FXML tout simple tel que créé par NetBeans ou SceneBuilder ressemblera au code suivant :
Titre
xml Oui Line de début Dissimulable Lien fichier
|
|
L’arborescence SceneGraph ne contient rien de plus qu’un simple
layout de type
AnchorPane et dont les dimensions ont été mises à 600 x 400.
A.Entête
Comme tout fichier XML, l’entête d’un fichier FXML doit être :
Titre
xml Oui Line de début Dissimulable Lien fichier
|
|
Évidement, le fichier doit être au format texte et encodé à la valeur appropriée.