Estou pesquisando como fazer um Change Listener decente para um JTextField. Eu ja uso uma classe derivada de PlainDocument para tratar o insertString e o removeUpdate. Portanto, se o usuario insere ou remove um caracter, eu capturo o “Change” do campo. Mas tem outras situacoes onde eu preciso dar um “setText” no campo, e neste caso o insertString (nem o insertUpdate) sao disparados, e portanto eu nao consigo fazer uma captura decente do “Change”. Eu precisaria de um lugar que cercasse todas as possibilidades de mudanca do conteudo do campo.
OK, eu fiz isso, baseando-me no link: http://java.sun.com/docs/books/tutorial/uiswing/events/documentlistener.html
Ele funciona exatamente como antes, ou seja, eu transferi o codigo que estava dentro do meu Document para o DocumentListener (insert/remove) e continua funcionando apenas quando eu edito o campo, e nao quando eu faco o setText.
Corrigindo… como eu estava limpando o setText em um outro lugar depois do setText certo entao deu problema. Agora esta realmente funcionando 100% Document+DocumentListener.