I am learning how to create a sales system and I created this method to get information from a TextField and play within a table via the click of the enter button. I created a try-catch to handle exceptions, and if I enter the catch, it opens a JOptionPane. When I press enter again, the "%" button of JOptionPane
is pressed by default.
However, when I click on enter to close the JOptionPane
, it closes and reopens, because it is as if the TextField click event is activated, and ends up being a kind of loop, where every time the JOptionPane
and the enter is pressed, it disappears and appears again.
How to solve this?
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("");
}
}