In the system there is a field, the person needs to fill in this field and then press enter.
When you press enter, the system performs a check and then opens a JOptionpane
asking you to select: yes , no , ok etc.
The person presses with enter, and the system executes the function, until everything is ok.
The problem is: pressing enter on JOptionPane
(for example hit enter on the button yes ) it re-executes the function, but since it was not completed the system ends up with an error, it stays in the loop , because the person using the system presses enter, then it loads again, and so it goes ...
How to get around this? I've tried a lot of things, searched the internet for a lot of things, everything succeeds, does anything have to be done to fix it?
To catch the action, I'm using KeyListener
EDIT 1:
try {
if (evt.getKeyCode() == 10 || evt.getKeyCode() == 127) {
jfObjeto.setText(jfObjeto.getText());
controller.getAtendimentoController().novoAtendimentoItem();
controller.getAtendimentoController().getAtendimentoModel().getAtendimentoItem().setObjeto(jfObjeto.getText());
}
if (evt.getKeyCode() == 10) {
//verifica se possui sigla cadastrada
controller.getAtendimentoController().verificaCampoObjeto(
controller.getSistemaOperacaoController(),
controller.getSistemaSiglaEtiquetaController());
//verifica se o objeto possui lancamento para EDITAR
controller.getAtendimentoController().consultaObjetoEdicao();
if (controller.getAtendimentoController().getAtendimentoModel().getAtendimentoItem().getId() > 0) {
int resposta = new Mensagem().pergunta("Atenção deseja alterar o objeto " + controller.getAtendimentoController().getAtendimentoModel().getAtendimentoItem().getObjeto() + "?");
if (resposta == 0) {
preencherAtendimentoItemToFrame();
}
}
// avanca para proximo campo, ou recua para o anterior
formatarAvancarRecuarAtendimentoItem(evt, jfObjeto);
} else if (evt.getKeyCode() == 127) {
controller.getAtendimentoController().consultaObjetoEdicao();
if (controller.getAtendimentoController().getAtendimentoModel().getAtendimentoItem().getId() > 0) {
int resposta = new Mensagem().pergunta("Deseja excluir o objeto " + controller.getAtendimentoController().getAtendimentoModel().getAtendimentoItem().getObjeto() + "?");
if (resposta == 0) {
controller.getAtendimentoController().excluirObjetoPostagemItem();
controller.getAtendimentoController().carregarListaAtendimentoItem();
tabelaAtendimentoItem();
limparAtendimentoItem();
carregarQuantidadeValorTotalAtendimento();
controller.getAtendimentoController().novoAtendimentoItem();
jfObjeto.requestFocusInWindow();
}
} else {
new Mensagem().erro("Nenhum Objeto Localizado para Exclusão");
}
} else if (evt.getKeyCode() == 27) {
formatarAvancarRecuarAtendimentoItem(evt, jfObjeto);
}
} catch (Exception ex) {
new Mensagem().erro(ex.getMessage());
jfObjeto.requestFocusInWindow();
}