Maison >Java >javaDidacticiel >Comment puis-je obtenir une validation immédiate de la saisie dans un champ de texte sans appuyer sur Entrée ?
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!