GUI avec JavaFX

Objets évènement

Il n'est pas très intéressant d'avoir trois boutons pour faire la même chose, aussi on va différencier le traitement en fonction du bouton qui a déclenché l'évènement. Pour cela on pourrait écrire trois méthodes différentes, une par bouton, et modifier la propriété "onAction" de chacun des boutons, mais il est aussi possible de récupérer des indications sur l'origine de l'évènement qui a déclenché le gestionnaire, grâce à un paramètre d'un type événement (event) approprié.

Modifier le code de la méthode clicBouton:

@FXML void clicBouton(ActionEvent ev){
Button lequel=(Button)ev.getSource();
ligne1.setText("On a cliqué sur le bouton "+lequel.getText());
}

La méthode clicBouton prend maintenant un paramètre de typeActionEvent : événement déclenché par l'action d'un contrôle.
Ce paramètre, appelé ev, contient un certain nombre de renseignements sur l'évènement ayant déclenché l'action.

La méthode ev.getSource() indique quel est l'objet qui a causé l'évènement. On la fait précéder de (Button) qui fonctionne en opérateur de cast, pour indiquer que cet objet (type générique) est à considérer comme un bouton, ce qui permet ensuite de le traiter comme tel.

La ligne ligne1.setText("On a cliqué sur le bouton "+lequel.getText()); permet (grâce à setText) d'attribuer au texte écrit dans la ligne de saisie ligne1, le texte constitué de "On a cliqué sur le bouton" suivi du texte récupéré, , grâce à lequel.getText();, sur le bouton origine de l'évènement.

 
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é