1

Essayant d'obtenir la valeur d'un objet JTextField lors de sa mise à jour (caractères insérés, caractères supprimés, caractères modifiés), puis définition de sa valeur.JTextField DocumentListener

J'ai couru dans l'exception « Tentative de muter dans la notification » qui me conduisent à:

Cependant, vous ne devez jamais modifier le contenu d'un composant de texte à partir d'un document listener. Si vous le faites, le programme sera probablement bloqué. Au lieu de cela, vous pouvez utiliser un champ de texte formaté ou fournir un filtre de document. de here

J'utilise un filtre de documents pour limiter le nombre de caractères du JTextField à 12 mais je ne sais pas comment je peux détecter les changements sur le JTextField sans utiliser l'auditeur de documents ... qui est le source de l'exception

Un conseil ou SSCCE pour moi?

+3

http://stackoverflow.com/questions/3519151/how-to-limit-the-number-of-characters -in-jtextfield – posdef

+2

aussi: http://stackoverflow.com/questions/6172267/how-to-restrict-the-jtextfield-to-ax-number-of-characters?lq=1 – posdef

+0

@posdef En plus de limiter la caractères Je veux déclencher un événement sur supprimer/ajouter/modifier des caractères .. – Strokes

Répondre

2

C'est simple. Enveloppez la logique des événements de DocumentListener dans SwingUtilities.invokeLater() pour empêcher Tentative de muter Notificatio problème