13.21 Ui Thread
Poursuivons notre exploration de la gestion d'événements en JavaFX. Cette fois, nous ajoutons une CheckBox sous notre bouton existant pour conditionner le comportement de l'application. La CheckBox aura un texte et se positionne en rowIndex = 2, columnIndex = 0 dans le GridPane.
Pourquoi pas un handler sur la CheckBox ?
On pourrait imaginer brancher un handler qui se déclenche à chaque cochage/décochage. Mais en pratique, pour la plupart des contrôles, on ne se soucie pas de l'état intermédiaire — on lit l'état au moment de valider, c'est-à-dire au clic sur un bouton (typiquement un bouton « Enregistrer » ou « Valider »). C'est à ce moment-là qu'on récupère l'état de tous les champs en une fois.
La logique sera donc : si la case est cochée, on affiche le « Bonjour » personnalisé ; sinon, on ne fait rien (ou on garde le comportement par défaut).
Brancher la CheckBox au contrôleur
Dans le fichier FXML, on assigne un fx:id à la CheckBox, puis on déclare la variable correspondante dans le contrôleur, annotée @FXML :
@FXML
private CheckBox maCase;
On ajoute une méthode (par exemple public void verifierEtat()) annotée @FXML qui vérifie maCase.isSelected() et fait ou non l'action en conséquence. Dans notre handler de bouton, on conditionne désormais le message : si la case est cochée, on construit et affiche le « Bonjour » concaténé avec le contenu du TextField ; sinon, on n'affiche rien.
À l'exécution, en tapant « Alex » dans le champ : si la case est cochée, le clic affiche « Bonjour Alex » ; si la case n'est pas cochée, rien ne se passe. La logique est simple, mais elle illustre bien la philosophie JavaFX : on lit l'état des contrôles au moment voulu, sans s'encombrer d'événements intermédiaires. C'est tout pour la CheckBox dans la gestion d'événements, à bientôt.
En résumé
Cette leçon explique comment ajouter et gérer des contrôles de case à cocher (checkbox) dans une interface utilisateur, en mettant l'accent sur la gestion efficace des événements. Le concept clé est de ne traiter les données que lorsque l'utilisateur valide son saisie (par un bouton d'enregistrement) plutôt que à chaque interaction du contrôle. On apprend à vérifier l'état des contrôles (sélectionné ou non) et à coordonner les actions entre le contrôleur et l'interface utilisateur.
Points clés
- Ajouter une case à cocher à l'interface utilisateur avec un libellé descriptif
- Gérer les événements de contrôle sans surcharger le programme avec des actions à chaque interaction
- Utiliser l'état des contrôles (sélectionné/décochée) au moment de la validation plutôt que en temps réel
- Implémenter une méthode pour déterminer si une checkbox est sélectionnée
- Coordonner les actions du contrôleur avec l'état des contrôles de l'interface
- Traiter et capturer les données utilisateur uniquement lors de l'appui sur le bouton d'enregistrement
Questions fréquentes
Quand faut-il traiter les événements d'une case à cocher ?
Il n'est généralement pas nécessaire de traiter les événements à chaque clic sur la checkbox. Il est plus efficace de vérifier l'état du contrôle au moment où l'utilisateur valide son saisie (en appuyant sur un bouton d'enregistrement ou de dialogue), plutôt que de réagir à chaque changement.
Comment vérifie-t-on si une checkbox est sélectionnée en Java ?
On utilise une méthode publique pour déterminer l'état de la checkbox (sélectionnée ou non). Cette méthode est appelée au moment du traitement des données, généralement dans le gestionnaire d'événement du bouton d'enregistrement.
Quel est le rôle du contrôleur dans la gestion des événements UI ?
Le contrôleur recense les états de tous les contrôles de l'interface (checkboxes, champs de texte, boutons) et exécute les actions appropriées basées sur ces états. Il fonctionne généralement au moment où l'utilisateur appuie sur un bouton de validation ou d'action.