0 votes

Comment déclencher une action lorsque l'utilisateur quitte une JTextBox ?

J'ai un champ de texte JTextField, et j'aimerais que le système effectue un traitement sur ce que l'utilisateur a tapé lorsque celui-ci quitte le champ de texte. Cependant, l'ActionListener que vous pouvez ajouter au JTextField ne se déclenche que lorsque l'utilisateur appuie sur la touche Entrée.

Je voudrais que la routine de traitement s'exécute chaque fois que l'utilisateur quitte la zone de texte par quelque moyen que ce soit - tabulation, clic hors de la zone, pression sur la touche Entrée, etc. (Le traitement en question consiste à enregistrer le texte que l'utilisateur a tapé dans l'objet de données approprié, rien de bien compliqué).

Mon google-fu a échoué sur ce point : Je suis sûr que c'est possible, mais je ne vois pas comment.

6voto

Tom Hawtin - tackline Points 82671

Ajouter un FocusListener .

Il convient de noter qu'il s'agit d'un écouteur de niveau relativement bas. Sur JComboBox cela ne fonctionnera que si vous trouvez le champ de texte (et peut-être le bouton) que le PL&F particulier insère. Swing est un peu bizarre de cette façon (parmi beaucoup d'autres).

Bien que, à mon avis, les changements non cosmétiques qui se produisent lorsque le focus quitte un champ donnent une mauvaise expérience utilisateur. Il est bien mieux d'effectuer tous les changements pertinents à chaque changement avec un écouteur sur le document du champ de texte.

0voto

camickr Points 137095

Si vous souhaitez modifier le texte au fur et à mesure de sa saisie, vous devez utiliser un DocumentFilter.

Si vous voulez valider le texte comme une entité complète, vous pouvez utiliser un InputVerifier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X