GUI avec JavaFX

Déclaration des composants sous Eclipse

Sous Eclipse, visualiser le fichier "Echantillon.fxml" pour voir si les modifications ont été prises en compte. Si ce n'est pas le cas utiliser le menu File/Refresh pour rafraîchir le projet Bonjour.

Le fichier Echantillon.fxml contient maintenant un certain nombre de nouvelles balises entre "< " et ">", décrivant tous les éléments que l'on a ajoutés.

Si on exécute l'application en lançant la classe "Main", on n'obtient pas tout à fait la disposition créée sous SceneBuilder car la taille de la fenêtre de 400 x 400 pixels, imposée à l'ouverture, est un peu trop grande. Pour y remédier, dans le code de "Main", modifier la ligne primaryStage.setScene(scene,400,400); en primaryStage.setScene(scene);. La taille de la fenêtre, non imposée, s'adaptera alors automatiquement à son contenu.

Pour l'instant les boutons ne servent à rien puisqu'ils n'ont pas de gestionnaires d'évènement. On peut par contre déjà écrire dans les lignes de saisie car par défaut elles sont éditables. Mais l'application ne peut pas encore communiquer avec tous ces éléments.

Il va falloir maintenant déclarer les boutons et les lignes de saisie dans la classe contrôleur EchantillonController.

Classiquement, tous les composants de l'interface graphique étant des objets, on devrait les construire en faisant appel à leur constructeur avec l'instruction "new". Mais comme ils sont déjà décrits dans le fichier FXML, on peut à la place faire référence à celui-ci, en utilisant la commande @FXML.

On va donc rajouter dans le code de la classe contrôleur les lignes

@FXML Button bMachin;
@FXML Button bTruc;
@FXML Button bChose;

@FXML TextField ligne1;
@FXML TextField ligne2;
@FXML TextField ligne3;
(bMachin,bTruc, bChose, ligne1, ligne2, ligne3 étant des noms de variable, vous pouvez utiliser à la place n'importe quel nom valide, commençant par une minuscule).

Il faudra ajouter les importations

import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
Attention : lorsque vous utilisez l'assistant d'Eclipse pour importer les classes dont vous avez besoin, il faudra être attentif à bien importer les classes appartenant aux bibliothèques JavaFX et non celles appartenant aux bibliothèques des autres méthodes, awt et swing. Il faut regarder le chemin complet de la classe : s'il contient "javafx" c'est bon, s'il contient "awt" ou "swing" ce n'est pas la bonne classe.
 
Licence Creative Commons
licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé
Auteur : Nathalie Bonnin
Professeur de Physique, Chimie, Informatique au lycée La Martinière Monplaisir (Lyon 8ème)
Contact :
nathalie.bonnin (chez) scientillula.net
Licence Creative Commons
La totalité du contenu du site Scientillula.net appartient à Nathalie Bonnin et est mise à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 non transposé