Olá pessoal estou fazendo um programa de datilografia!
e preciso verificar se a tecla está errada a cada tecla pressionada!
tentei fazer com o evento keyRealesed mas só que daí enquanto eu não soltar a tecla ele não executa o meu evento, ou seja repete várias vezes a letra e não verifica se a letra digitada está errada!
aí eu pesquisei e achei o caretUpdate, só que assim, olha o código:
private void tfLinhaCaretUpdate(javax.swing.event.CaretEvent evt) {
dig = tfLinha.getText();
if (!dig.equals("")) {
if (tempo_inicio == 0) {
tempo_inicio = System.currentTimeMillis();
}
quant_dig = dig.length();
pedaco = exer.substring(0, quant_dig);
if (!pedaco.equals(dig)) {
toques();
java.awt.Toolkit.getDefaultToolkit().beep();
tfLinha.setText(null); // AQUI ESTÁ O PROBLEMA
JOptionPane.showMessageDialog(null, "Digitação incorreta, favor recomeçar a linha!!!");
taErros.setText(dig + "\n" + taErros.getText());
}
if (dig.equals(exer)) {
toques();
atual = Integer.parseInt(tfLinhas.getText());
tfLinhas.setText(String.valueOf(atual + 1));
tfLinha.setText(null); // E AQUI TAMBÉM
BDAluno.alteraLinha(Integer.parseInt(tfCod.getText()), tfLinhas.getText());
if (tfLinhas.getText().equals("10")) {
int exer_atu = Integer.parseInt(tfExer.getText()) + 1;
BDAluno.alteraExer(Integer.parseInt(tfCod.getText()), String.valueOf(exer_atu));
atualiza();
}
}
}
}
quando der erro ou seja o usuário digitou a linha errada ele tem que mostrar o JOptionPane e limpar o jTextField só que ele dá Exception porque ele está entrando mais uma vez no caretUpdate e assim repetitivamente e para não travar o micro o Java da Exception....
como posso limpar o jTextField dentro do Evento...
Aguardo a ajuda de vocês!!!