GUI avec JavaFX

Divers types d'évènements

Des événements peuvent aussi être déclenchés par le clavier, la souris...

Sous Eclipse, écrire la méthode ci-dessous, utilisant un évènement en provenance du clavier

@FXML void saisieTexte1(KeyEvent kev){
ligne2.appendText(kev.getCharacter());
}
en remplaçant si nécessaire ligne2 par le nom que vous avez choisi pour la deuxième ligne de saisie.

Sous SceneBuilder, pour la deuxième ligne de saisie (ligne2), rendre cette ligne non éditable en décochant la case "Editable" dans la partie "Properties" de l'inspecteur d'objet.

Pour la première ligne de saisie (ligne1), dans la partie Code de l'inspecteur d'objet, sélectionner saisieTexte1 comme gestionnaire d'évènement pour l'évènement OnKeyTyped.

Enregistrer et repasser sous Eclipse. Lancer le programme.
On ne peut maintenant plus écrire directement dans la deuxième ligne de saisie puisqu'elle n'est plus éditable, mais en revanche tout caractère que l'on écrit dans la première ligne est recopié dans la deuxième.
En effet chaque fois qu'une touche est frappée (Key Typed) alors que la première ligne a le focus, un événement est déclenché et la méthode saisieTexte1 appelée.
Cette méthode récupère le caractère produit par la frappe de touche ayant déclenché l'évènement, grâce à getCharacter().
Ce caractère est ensuite ajouté au texte contenu dans la ligne 2 grâce à ligne2.appendText.

On peut également récupérer des informations sur la touche à l'origine de l'évènement, grâce à getCode().

Sous Eclipse, écrire la méthode ci-dessous :

@FXML void codeTouche(KeyEvent kev){
TextField origine=(TextField)kev.getSource();
origine.clear();
origine.setText(kev.getCode().toString());
}

Sous SceneBuilder, rendre la troisième ligne de saisie non éditable. Dans la partie Code, associer la méthode codeTouche à l'évènement onKeyPressed de la deuxième et de la troisième ligne de saisie. Enregistrer et lancer le programme depuis Eclipse.

Lorsque la deuxième ou la troisième ligne de saisie est activée et qu'on utilise le clavier, cette ligne de saisie affiche à présent une chaîne de caractère désignant la touche qui a été pressée.

getCode() après un évènement Keypressed est surtout intéressant pour détecter l'appui de touches non alphabétiques, comme les flèches de direction, la touche Entrée, etc...

 
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é