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: