Dúvida ao fechar janela no X

5 respostas
C

Olá,

Ao clicar no X do frame faço uma pergunta se o usuário realmente deseja sair, se clicado em sim deve fechar a janela, se clicado em não ela não deve fechar, porém não estou conseguindo fazer esse teste. No exemplo abaixo coloquei uma variável retorno, se retorno for 0 ele fecha a janela, porém se for 1 o que devo fazer para não fechar? se deixo sem o "else" ele fecha do mesmo jeito.

addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				int retorno = 0;
				Object[] opcoes = { "Sim", "Não" };
			      retorno = JOptionPane.showOptionDialog(null, 
			                "Deseja encerrar a aplicação?",
				  	 "Sair",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,
			                null, opcoes, opcoes[0]);
			      if (retorno == 0)
			      {
			    	  dispose();
			      }
			      else
			      {
			    	  
			      }
			}
		});

Alguma sugestão?

Obrigada.

5 Respostas

Marky.Vasconcelos
else
{
return;
}
C

não funcionou =[

M

to na mesma que tu
to precisando da tal função mas não funciona

C

consegui!

tem q setar a propriedade do JFrame setDefaultCloseOperation para DO_NOTHING_ON_CLOSE

:smiley:

sergio.danilo

Na minha app aqui nao funfou!!!

Eu tenho um FrameView, pego o JFrame pelo getFrame() e seto a propriedade de não fechar a janela, mas nao deu certo!

public void adicionaListener() { this.getFrame().setDefaultCloseOperation(0); this.getFrame().addWindowListener(new WindowListener() { public void windowClosed(WindowEvent arg0) { } public void windowActivated(WindowEvent arg0) { } public void windowClosing(WindowEvent arg0) { int retorno = 0; Object[] opcoes = { "Sim", "Não" }; retorno = JOptionPane.showOptionDialog(null, "Deseja encerrar a aplicação?", "Sair",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, opcoes[0]); if (retorno == 1) { return; } }

Qual o problema?

Criado 15 de maio de 2008
Ultima resposta 13 de abr. de 2010
Respostas 5
Participantes 4