Maison >Java >javaDidacticiel >Comment puis-je obtenir une validation immédiate de la saisie dans un champ de texte sans appuyer sur Entrée ?

Comment puis-je obtenir une validation immédiate de la saisie dans un champ de texte sans appuyer sur Entrée ?

DDD
DDDoriginal
2024-12-14 21:08:11349parcourir

How Can I Get Immediate Input Validation in a Text Field Without Pressing Enter?

Obtention d'une validation immédiate des entrées avec l'écouteur de changement de valeur du champ de texte

Pour un retour rapide sur la saisie de l'utilisateur, il est essentiel que la boîte de message apparaisse comme dès que l'utilisateur modifie le texte dans le champ de texte. Cependant, face au problème du déclenchement de la boîte de message uniquement après avoir appuyé sur la touche Entrée, examinons le code et trouvons une solution.

Le code utilise un ActionListener sur le champ de texte, qui est invoqué lorsqu'une action se produit sur le terrain, y compris en appuyant sur Entrée. Ce comportement explique pourquoi la boîte de message apparaît après avoir utilisé la touche Entrée. Pour résoudre ce problème, nous avons besoin d'une réponse plus immédiate aux changements de valeur du champ de texte.

La solution réside dans l'ajout d'un écouteur au document sous-jacent du champ de texte. Le Document, créé automatiquement pour chaque champ de texte, représente le contenu du texte. En surveillant les modifications dans le document, nous pouvons répondre à toute modification du texte, quelle que soit la méthode de saisie de l'utilisateur.

Voici un extrait de code mis à jour :

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);
     }
  }
});

Ce code modifié ajoute un DocumentListener au champ de texte, qui réagit aux modifications au niveau du document. Les trois méthodes de mise à jour différentes (modifié, supprimé, inséré) sont invoquées en fonction du type de modification apportée au texte, permettant ainsi une validation immédiate de la saisie de l'utilisateur.

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!

Déclaration:
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