Eventos JButton

Salve, amigos!

Conforme trecho abaixo, gostaria de alguns esclarecimentos:


ActionListener sairListener = new ActionListener()
		    {
                @Override
                public void actionPerformed(ActionEvent e)
                {
                	Object[] options = { "Sim", "Cancelar" };
                	JOptionPane.showOptionDialog(null, "Deseja realmente sair do IntraNetMaker?", "Confirmação",

                	            JOptionPane.CLOSED_OPTION, JOptionPane.QUESTION_MESSAGE,

                	            null, options, options[0]);
                	/*if(options == options[0])
                	{
                		System.exit(0);
                	}*/
                	System.exit(0);
                    //JOptionPane.showMessageDialog(null, "Deseja realmente sair?");
                    //System.exit(0);
                }

            };

1º) O “Sim”, “Cancelar” e o “ESC” têm a mesma função;

2º) Como fazer o “Cancelar” e o “ESC” desconsiderar tal pergunta e manter tudo como está, ou seja, setVisible(true)?

Desde já agradeço aos amigos.

Esse método retorna um TRUE ou FALSE, você tem que colocar em um if…

Exemplo: if(mostraDialogoConfirmacao(“Deseja sair”, “Quer mesmo Sair?”){
System.exit(0);
}

Se não, ele não vai fazer nada ;D

static boolean mostraDialogoConfirmacao(String titulo, String texto) { return (javax.swing.JOptionPane.showConfirmDialog(null, texto, titulo, javax.swing.JOptionPane.OK_CANCEL_OPTION) == 0); }