Fechar o programa com uma pergunta

6 respostas
Frank

Pessoal,
Preciso que o meu programa, quando eu clicar no “X” para fechá-lo, ele faz uma pergunta “Você deseja fechar o programa ? Sim ? Não ?” Se eu clicar no SIM ele pára o processo se estiver rodando alguma coisa e fecha o programa, se eu clicar no NÃO ele continua rodando o que estiver processando e deixa o programa aberto.

Será que alguém pode me ajudar me explicando ou passando um código de exemplo ?

Desde já obrigado,

6 Respostas

R

vc pode fazer algo assim:

JFrame.addWindowListener(new WindowAdapter() 
{
 public void windowClosing(WindowEvent evt)
{
int intOpcao = JOptionPane.showOptionDialog(JFrame, "Fechar Programa?", "JFrame" ,, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

if (intOpcao == 0)
{
	System.exit(0);
}
else
JFrame.setDefaultCloseOperation(Jframe.DO_NOTHING_ON_CLOSE);
        }
      });

deve funcionar…

falow

Frank

Uma pergunta bem idiota:
Este código eu tenho q colocar no main ?

luiz_ross

num precisa ser dentro do main, só precisa ser dentro da sua classe principal, o frame que comporta todo os compnentes visuais do seu programa

Frank

Pessoal,
Eu alterei o código e ele ficou assim:

final ParqueGUI parque = new ParqueGUI();
		
parque.addWindowListener(new WindowAdapter() {
	public void windowClosing(WindowEvent evt) {
		int intOpcao = JOptionPane.showOptionDialog(null, "Deseja fechar o Programa?", "PERGUNTA", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);

		if (intOpcao == 0) {
			System.exit(0);
		} else {
			parque.setDefaultCloseOperation(ParqueGUI.DO_NOTHING_ON_CLOSE);
		}
	} //  fecha public void
}); // fecha WindowListener

Coloquei ele no main do programa principal e também testei criando um private void que segue abaixo:

private void window(java.awt.event.ActionEvent evt) {
}

… Só que ele não executou quando eu cliquei no “X” do meu programa, tem alguma coisa errada ?

Estou no aguardo,

Frank

Pessoal,
funcionou !! Estava meio confuso com o entendimento a respeito de Eventos, então estudei um pouco no site do java.sun e consegui fazer o evento funcionar direito.
Agora preciso de uma ajuda:
Gostaria que essa pergunta só seja feita quando eu clicar no botão de processar o programa e eu for fechar o programa no “X”, como eu posso fazer isso ?

Estou no aguardo e desde já obrigado,

Frank

Pessoal, consegui terminar a pergunta!
Eu criei a classe windowClosing no programa principal com a pergunta; na outra Thread do meu programa eu criei uma variável int chamada “flag” e no run() eu seto esta variável como 1; na classe windowClosing do programa principal eu verifico com um if se a variável esta com o valor 1, se estiver ele faz a pergunta, senão ele fecha o programa.

Obrigado,

Criado 11 de junho de 2003
Ultima resposta 16 de jun. de 2003
Respostas 6
Participantes 3