Écouteur de changement de valeur TextField
Votre objectif est d'afficher une boîte de message immédiatement lors des changements de valeur dans un champ de texte. Cependant, votre code actuel affiche la boîte de message uniquement après avoir appuyé sur la touche Entrée. Pour résoudre ce problème, concentrez-vous sur le document sous-jacent pour suivre les modifications des champs de texte.
Solution :
Introduit dans Swing, JTextFields utilise un document qui stocke et gère le texte. contenu. L'ajout d'un DocumentListener vous permet de surveiller les modifications de texte dans le champ. Voici le code mis à jour :
// Listen for changes in the text 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); } } });
Avec DocumentListener en place, toute modification de texte dans le champ déclenche désormais la méthode warn(), qui vérifie l'entrée et affiche la boîte de message si nécessaire. De cette façon, la boîte de message apparaît instantanément après que l'utilisateur a modifié le texte, répondant ainsi à vos besoins.
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!