Problemas com o Limpar

Ola pessoal tudo bem???

Eu estou com um problema em um programa que estou fazendo. O programa é para a datilografia, da escola onde trabalho!Os alunos tem que digitar uma frase igual a que ja existe. Caso os alunos digitem errado, o programa deve mostra um mensagem de erro, e logo em seguida limpar a linha que o mesmo estava digitando, pois quando o aluno errar deve começar a linha novamente. Para passar de exercicio, o aluno deve completar 10 linha de cada sem erro.

É assim que deve funcionar o programa, porém o meu problema é que eu utilizei o evento caretUpdate para fazer a comparação da letras e agora o programa não aceita limpar o componete(JTextField).

Quando o alunos errar tem que aparecer esta caixinha, até ai tudo certo com o programa, porém, quando o aluno der ok tem que limpar a linha que ele estava digitando, mas não limpar, da o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempt to mutate in notification

As linhas de comandos que estão no evento CaretUpdate de cada JTextField:

frase=lexer.getText().substring(contposifrase,contfrase); frasedig=tflinha1.getText().substring(contposilinha,contlinha); if(frase.equals(frasedig)){ contfrase = contfrase+1; contlinha = contlinha+1; contposifrase = contposifrase+1; contposilinha = contposilinha+1; }else{ JOptionPane.showMessageDialog(null, "Erro na Digitação! Pressione ENTER!"); contfrase=1; contlinha=1; contposifrase=0; contposilinha=0; // tflinha1.setText(null); ESTA É A LINHA QUE DEVERIA FUNCIONAR, MAS NÃO FUNCIONA } if(conttot==75){//IF PARA PASSAR PARA A OUTRA LINHA, SE NÃO TIVER ERROS. tflinha2.setEnabled(true); tflinha2.requestFocus(); tflinha1.setEnabled(false); conttot=1; contfrase = 1; contlinha = 1; contposifrase = 0; contposilinha = 0; conttotlinha=conttotlinha+1; tftotlinha.setText(String.valueOf(conttotlinha)); }else{ conttot=conttot+1; }
SE FOR POSSIVEL ME AJUDAREM AGRADEÇO!
OBRIGADO
:eek:

// tflinha1.setText(null);

// tflinha1.setText("");

Já tentei fazer isso, mas o erro permanece.

Juliana, faz o tratamento de limpeza dentro de um try-catch…para pegar a exceção exata!

Aqui nessa thread, o pessoal discute esse problema q. vc está tendo…dá uma olhada!

http://forum.java.sun.com/thread.jspa?threadID=620748&tstart=1

t+

Ola Diana!

Mesmo utilizando o try e catch, o programa não limpar a linha!
Fiz um teste, se a limpeza da linha estiver em um button utilizando o ActionPerformed, da certo. Será que o evento CaretUpdate não aceito a limpeza ou não tem nada haver???

Li todo o link que me passou, mas mesmo assim permanece com o mesmo problema:

Exception occurred during event dispatching:
java.lang.IllegalStateException: Attempt to mutate in notification

T+