Maison > Java > javaDidacticiel > Comment détecter immédiatement les changements de valeur de JTextField sans appuyer sur Entrée ?

Comment détecter immédiatement les changements de valeur de JTextField sans appuyer sur Entrée ?

Linda Hamilton
Libérer: 2024-12-24 08:07:17
original
786 Les gens l'ont consulté

How to Detect JTextField Value Changes Immediately Without Pressing Enter?

Écouteur de changement de valeur pour JTextField

De nombreux développeurs ont rencontré le problème d'un écouteur d'action ne se déclenchant qu'après que l'utilisateur appuie sur Entrée dans un champ de texte . Pour remédier à ce problème, nous devons utiliser une approche différente, capable de détecter immédiatement les changements de valeur.

La solution réside dans l'utilisation d'un "DocumentListener" au lieu d'un "ActionListener". Le document sous-jacent du champ de texte écoute automatiquement toute modification de son contenu. En ajoutant un écouteur à ce document, nous pouvons exécuter des actions spécifiques dès que l'utilisateur modifie le texte.

Voici un extrait de code modifié qui intègre un "DocumentListener" :

textField.getDocument().addDocumentListener(new DocumentListener() {
  public void changedUpdate(DocumentEvent e) {
    warn();
  }
  public void removeUpdate(DocumentEvent e) {
    warn();
  }
  public void insertUpdate(DocumentEvent e) {
    warn();
  }

  public void warn() {
     if (Integer.parseInt(textField.getText())<=0){
       JOptionPane.showMessageDialog(null,
          "Error: Please enter number bigger than 0", "Error Message",
          JOptionPane.ERROR_MESSAGE);
     }
  }
});
Copier après la connexion

Ceci Le code déclenchera le message d'erreur dès que la saisie dans le champ de texte ne répond plus à la condition (un entier positif). Pas besoin d'appuyer sur Entrée ou d'effectuer des actions supplémentaires.

Ainsi, au lieu de compter sur "ActionListener", qui écoute les "ActionEvents" comme en appuyant sur Entrée, nous exploitons un "DocumentListener" qui observe les changements dans le document. , permettant des réactions immédiates aux modifications de texte.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal