I. Introduction








télécharger 275.91 Kb.
titreI. Introduction
page7/15
date de publication02.02.2018
taille275.91 Kb.
typeDocumentos
ar.21-bal.com > loi > Documentos
1   2   3   4   5   6   7   8   9   10   ...   15

H.Inclure du FXML dans du FXML


Il est assez courant de découper une UI en sous-parties ; cela permet de rendre le code permettant de gérer chaque partie plus lisible et facile à maintenir tout en permettant de réutiliser certaines parties à plusieurs endroits comme dans des assistants, des palettes ou des boite de dialogue. Il est tout à fait possible d’intégrer notre FXML dans un autre FXML :

Titre

xml Oui Line de début Oui Lien fichier

























































Nous avons inclus un BorderPane dans notre AnchorPane racine. Les utilisateurs de Swing reconnaîtront dans ce contrôle, un layout qui dispose son contenu de manière similaire au BorderLayout. Notre bouton se trouve dans la partie top, tandis que nous incluons notre FXML proxy.fxml dans la partie bottom ; j’ai également inclus un contrôle WebView dans la partie center. WebView est un composant capable de rendre des pages HTML 5 via WebKit, c’est un équivalent plus moderne du JEditorPane de Swing.

Titre

xml Oui Line de début Dissimulable Lien fichier



La balise fx:include permet d’inclure un fichier FXML dans un autre fichier FXML. Son attribut source permet de définir la localisation du fichier à inclure. Cette valeur peut être un chemin relatif ou absolu par rapport au package courant. Comme n’importe quelle autre entité, il est possible de lui donner une identité avec l’attribut fx:id ce qui se révélera être utile par la suite.

L’affichage donnera quelque-chose comme ça ; j’en ai profité également pour agrandir un peu la taille de la scène dans le code de mon programme :


I.Définir du code dans le FXML


Pour le moment, notre interface n’est pas très vivante ; on peut certes cliquer sur quelques boutons et remplir quelques champs texte, mais il ne se passe pas grand-chose… Via le XML nous pouvons également spécifier des callbacks permettant d’appeler des fonctions lorsqu’on interagit avec certains contrôles. Après tout, les callbacks sont des propriétés comme des autres. Vous pouvez même définir le corps de ces méthodes directement dans le fichier FXML.

Titre

xml Oui Line de début Oui Lien fichier

























function goToDeveloppez() {

java.lang.System.out.println("En avant vers le site de développez !");

browser.getEngine().load("http://www.developpez.com/")

}







































En théorie, vous pouvez utiliser n’importe quel langage de script qui fonctionne sur la JVM. En pratique, seul l’interpréteur JavaScript (Rhino dans Java 6-7, Nashorn dans Java 8) est présent par défaut, il vous faudra packager tout autre interpréteur avec votre application.

Parmi les changements apportés à ce FXML, le premier est l’ajout de la directive suivante au début du fichier :

Titre

xml Oui Line de début Dissimulable Lien fichier



Cette directive indique que vos scripts seront exécutés par l’interpréteur JavaScript de la JVM. Si vous utilisez un autre langage de script, vous devrez spécifier ici quel est l’interpréteur à utiliser.

Vous trouverez ensuite, dans la balise racine, un bout de code défini entre des balises fx:script qui contient la définition de la fonction goToDeveloppez().

Titre

xml Oui Line de début Dissimulable Lien fichier



function goToDeveloppez() {

java.lang.System.out.println("En avant vers le site de développez !");

browser.getEngine().load("http://www.developpez.com/")

}



C’est bien du JavaScript, qui appelle l’API Java : la première ligne de la fonction fait une impression sur la console, tandis que la seconde charge la page de garde du site de Développez dans la WebView. Notez au passage que j’ai donné une identité à ma WebView avec l’attribut fx:id et que j’utilise cette identité comme nom de variable dans ma fonction JavaScript.

J’ai, de plus, ajouté l’attribut onAction dans mon bouton en lui passant le nom de la fonction à appeler :

Titre

xml Oui Line de début Dissimulable Lien fichier


Quelques tests simples montrent qu’on aurait tout aussi bien pu écrire le nom de la fonction en omettant le paramètre et le ; final. Les parenthèses sont quant à elles obligatoires :

Titre

xml Oui Line de début Dissimulable Lien fichier


Lorsque je clique sur le bouton, désormais, la console va afficher :

Titre

text Oui Line de début Dissimulable Lien fichier

En avant vers le site de développez !

Et la page de garde du site de Développez s’affiche dans la partie centrale de l’UI. Enfin, si vous n’avez pas besoin de spécifier un proxy sur votre système, bien sûr ! Vous n’alliez pas imaginer que ce contrôle permettant de spécifier un proxy était juste là pour faire joli, tout de même ?



Sinon, pour en revenir à notre fonction JavaScript, vous pouvez normalement utiliser l’intégralité de l’API Java et manipuler tous les composants nommés de votre FXML. Évidement cela reste du JavaScript interprété au vol au moment de l’exécution, donc il peut être un peu compliqué de trouver les erreurs de syntaxe ou de gérer les exceptions qui seraient levées par le code.
1   2   3   4   5   6   7   8   9   10   ...   15

similaire:

I. Introduction iconIntroduction générale Introduction aux ordinateurs

I. Introduction iconTD/tp 1 Introduction au sdk d’Android 1 Introduction
«*. univ-lr fr» pour éviter d’utiliser le proxy pour les adresses internes à l’ulr

I. Introduction icon1. Clique d’abord sur «Visite virtuelle Haussman» et regarde l’introduction...
«Visite virtuelle Haussman» et regarde l’introduction à la belle architecture du bâtiment

I. Introduction iconI introduction

I. Introduction iconI introduction

I. Introduction iconI. Introduction

I. Introduction iconI introduction

I. Introduction iconA. Introduction

I. Introduction iconI introduction

I. Introduction iconI. introduction








Tous droits réservés. Copyright © 2016
contacts
ar.21-bal.com