Como inserir mensagem de alerta quando a janela for fechada?

3 respostas
Jackye

Olá!

Tentei adicionar uma mensagem de alerta de segurança para o usuário quando ele for fechando a janela de cadastro, mas não funcionou.
Eu fiz o seguinte:

Defini o evento windowClosing no frame e adicionei o seguinte metodo:

Object[] options = {"Sim", "Não"}; int i = JOptionPane.showOptionDialog(null, "Tem certeza que deseja fechar esta janela?", "Saída", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[1]); if (i == JOptionPane.YES_OPTION) { System.exit(0); }

Mas a janela fecha independente da escolha! :frowning:

3 Respostas

ferreira2006
// Isso no Janela
	setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
	addWindowListener(new java.awt.event.WindowAdapter() {
		@Override
		public void windowClosing(WindowEvent e) {
				if (e.getID() == WindowEvent.WINDOW_CLOSING) {
					sair();
				}
			}
		});	

        // método para saida
        public void sair() {
		String[] textMessages = { "Sim", "Não", "Cancelar" };
		if (JOptionPane.showOptionDialog(null, "Deseja realmente sair?",
				"Atenção", JOptionPane.YES_OPTION,
				JOptionPane.QUESTION_MESSAGE, null, textMessages, null) == 0) {
			System.exit(0);
		} 
	}
Jackye

Olá!

Inseri o evento a seguir no escorpo do formulario:

public CadastrarAutor() { setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(WindowEvent e) { if (e.getID() == WindowEvent.WINDOW_CLOSING) { sair(); } } }); }

E coloque o seguinte metodo sair dentro do frame mesmo.

public void sair() { String[] textMessages = { "Sim", "Não", "Cancelar" }; if (JOptionPane.showOptionDialog(null, "Deseja realmente sair?", "Atenção", JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, textMessages, null) == 0) { System.exit(0); } }

Belezza, aparece a mensagem de alerta, e as opções para o usuario escolher, mas qualquer que seja a escolha ela sempre fecha. :frowning:

yhhik
veja se resolve.
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class TesteGuj extends JFrame {

	public TesteGuj() {

		this.addWindowListener(new WindowAdapter() {
			public void windowClosing(java.awt.event.WindowEvent e) {
				if (e.getID() == WindowEvent.WINDOW_CLOSING) {
					int selectedOption = JOptionPane.showConfirmDialog(null,"Deseja Sair Realmente?", "Sair",JOptionPane.YES_NO_OPTION);
					if (selectedOption == JOptionPane.YES_OPTION) {

						System.exit(0);
					}
				}
			}
		});

		this.setSize(300,300);
	}

	public static void main(String[] args) {
		new TesteGuj().setVisible(true);
	}

}
Criado 3 de março de 2012
Ultima resposta 4 de mar. de 2012
Respostas 3
Participantes 3