J'utilise PropertyChangeListener
pour JTextFields
pour écouter valeur changer, et cela fonctionne normalement, et quand je l'utilise avec JTextArea
; pas d'erreurs dans le code et il est compilé normalement. Toutefois, cette méthode affiche la réponse lorsque certaines modifications se produisent dans une valeur de texte JTextField
mais aucune réponse lorsqu'il s'agit de JTextArea
.Java: PropertyChangeListener pour JTextArea Aucune réponse?
Voici comment je l'ai écrit le code
A l'intérieur du constructeur:
textField_1.addPropertyChangeListener("value", new ChangeListener());
textField_2.addPropertyChangeListener("value", new ChangeListener());
textArea.addPropertyChangeListener("value", new ChangeListener());
Et quelque part dans la classe:
private class ChangeListener implements PropertyChangeListener
{
@Override
public void propertyChange(PropertyChangeEvent e)
{
Object source = e.getSource();
if ((source == textField_1) || (source == textField_2) || (source == textArea))
{
System.out.println("some value changed "+ source.getClass());
}
}
}
J'utilise nouvelle valeur chaque fois que je fais une changer à ces valeurs de texte compomemts.
THanks
Remerciements; DocumentListener est parfait –
Merci; 'DocumentListener' est parfait. Mais je me demande; Comme il n'y a pas d'erreur dans mon code et que la ligne qui ajoute 'PropertyChangeListener' à' JTextArea' est compilée, pourquoi ne pas répondre? Je le remplace par 'DocumentListener' il fonctionne maintenant. ** De toute façon merci; votre réponse est parfaite. ** –
content de vous aider, seul le Document est responsable de l'écoute de tous les changements de/vers JTextComponent, – mKorbel