Boa noite galera, sou novo aqui e ainda não sei como funciona bem as coisas, mas vamos lá…Estou aprendendo a criar um sistema de vendas e criei esse método para pegar informações de um TextFiel e jogar dentro de uma tabela através do clique do botão enter. Criei um try-catch para tratar exceções e, se entrar no catch, abre uma JOptionPane e, quando aperto enter novamente o botão “OK” do JOptionPane é apertado por padrão. Porém, quando clico no enter para fechar o JOptionPane, ele fecha e abre de novo, pois é como se o evento de clique do TextField fosse ativado, a acaba ficando um espécie de loop, onde toda vez que aparece o JOptionPane e o enter é apertdado, ele some e aparece de novo. Ainda não achei nenhuma solução. Alguém poderia de ajudar? Desde já agradeço.
private void pegarConteudo(java.awt.event.KeyEvent e) {
jLabelStatus.setText("Caixa Aberto");
DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
if (e.getKeyCode() == java.awt.event.KeyEvent.VK_ENTER) {//Verifica se a tecla ENTER foi pressionada
try {
modelProdutos = controllerProdutos.retornarProdutosController(Integer.parseInt(jTextFieldPesquisa.getText()));
modelo.addRow(new Object[]{
modelo.getRowCount() + 1,
modelProdutos.getIdProduto(),
modelProdutos.getProdutoNome(),
quantidade,
modelProdutos.getProdutoValor(),
modelProdutos.getProdutoValor() * quantidade
});
jTextFieldValorTotal.setText(somaValorTotal() + "");
jTextFieldPesquisa.setText("");
quantidade = 1;
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "Produto não cadastrado", "ERRO", JOptionPane.ERROR_MESSAGE);
jTextFieldPesquisa.setText("");
}
}
}