Como fazer para o JOptionPane não fechar meu JFrame

4 respostas
waldineyrodrigues

Olá,

Tenho um formulário de cadastro, e quando clico em Salvar ele verifica se todos os campos foram preenchidos. Se algo algum campo estiver vazio ele cria a seguinte mensagem:

JOptionPane.showMessageDialog(null, "Favor preencher todos os campos antes de salvar", "Erro!", JOptionPane.INFORMATION_MESSAGE);

O meu problema é que ao clicar no OK ele fecha o meu JFrame de cadastro, e isso não era pra acontecer.
Alguém sabe como eu posso resolver isso?

4 Respostas

ViniGodoy

Passe o seu formulário de cadastro como primeiro parâmetro, no lugar de null.

Conforme diz a documentação do JOptionPane, no primeiro parâmetro deve ser passado a janela que é a o “pai” desse JOptionPane. Sem isso, o comportamento pode ficar bem estranho, especialmente se seu usuário usar o alt+tab.

waldineyrodrigues

ViniGodoy:
Passe o seu formulário de cadastro como primeiro parâmetro, no lugar de null.

Conforme diz a documentação do JOptionPane, no primeiro parâmetro deve ser passado a janela que é a o “pai” desse JOptionPane. Sem isso, o comportamento pode ficar bem estranho, especialmente se seu usuário usar o alt+tab.

Cara, fiz como você sugeriu, ficou assim

JOptionPane.showMessageDialog(FormSetor.this, "Favor preencher todos os campos antes de salvar", "Erro!", JOptionPane.INFORMATION_MESSAGE);

Mas, não deu certo, continua fechando meu formulário

diego.urban

Nesse formulário, depois que você clica em salvar e o cadastro é feito com sucesso o FormSetor é fechado?

Se sim, verfique a sua lógica de salvar, pois quando você clicar no Ok ou fecha o JOptionPane ele continua a executar o código depois da sua chamada.
Provavelmente deve ta caindo no dispose() do FormSetor.

waldineyrodrigues

diego.urban:
Nesse formulário, depois que você clica em salvar e o cadastro é feito com sucesso o FormSetor é fechado?

Se sim, verfique a sua lógica de salvar, pois quando você clicar no Ok ou fecha o JOptionPane ele continua a executar o código depois da sua chamada.
Provavelmente deve ta caindo no dispose() do FormSetor.

Nossa Diego,

Era isso… Nóhhh q bobeira minha
Mas, valeu d+++ pela dica… Eu tinha esquecido o meu dispose fora da condição que salva os dados no banco. Não deu outra. Eu mesmo fiz a cagada, rsrs.

Mto obrigado

Criado 5 de abril de 2010
Ultima resposta 5 de abr. de 2010
Respostas 4
Participantes 3