Estou terminando o projeto de um sistema de vendas em java.
Tenho uma janela chamada “frm_vender” onde eu coloco os produtos que quero vender. Na hora que clico no botão “Processar” que está nessa janela, preciso que abra uma outra janela secundária que seria a frm_pagar, onde aparecerá o valor dos produtos que eu escolhi, deverei colocar o valor que o cliente me deu (em dinheiro), e assim, abaixo deverá aparecer a diferença (o troco)… Até ali tudo certo.
O que eu preciso:
Preciso que quando eu dê o finalizar no frm_pagar, feche essa janela, e a outra onde estão os produtos deve ficar em branco e gravar os dados na base de dados.
O problema está aqui:
No momento, quando eu clico em “processar” na frm_vender, o sistema deveria abrir a janela secundária frm_pagar e pausar a execução até eu colocar o valor que o cliente me deu e assim somar no caixa, porém o sistema continua a execução e ja entra na função de zerar e descontar do estoque, etc.
Como faço para que o sistema “pause” a execução do método durante que a frm_pagar estar ativa?
Você vai precisar optar por um pattern como o observer, assim, quando abrir a janela secundária (observable), a janela principal fica aguardando (observer) o aviso para seguir (na verdade, executar o método para finalizar as coisas).
Existem outras opções, uma delas seria passar a instância da janela principal como argumento ao construtor da janela secundária e, ao final do que precisa fazer na janela secundária, invocar o método seguinte na principal. Mas, isso é meio que gambiarra.