Cancelar o internalFrameclosing depois do evento ter sido disparado

ola galera

eu tenho um jinternalframe, e quero que antes dele ser fechado ele mande uma mensagem perguntando se tem certeza que quer fechar a tela.

para isso estanciei um joptionpane da seguinte forma

    public void internalFrameClosing(InternalFrameEvent e) {
                  Object[] options = { "Confirmar", "Cancelar" };
                 int resposta = JOptionPane.showOptionDialog(null, "Deseja Sair da Tela de Pesquisa ?", " Fechar Pesquisa ", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]);
                                     JOptionPane.showConfirmDialog(null, resposta);
                 if (resposta == 0){
                    TelaCadastroCidade.fecharTelaPesquisa();
                 }else{ 
                       if(resposta == 1 ){
                             quando o usuario apertar cancelar eu gostaria que o evento fosse interompido e que a tela não seja fechada. < ====== PROBLEMA =(
                       }
                 }

    }

caso o usuario precione cancelar a tela nao deveria ser encerrada!

grato a todos

Nunca testei essa técnica, mas acho que pode ser resolvido da seguinte maneira: adicione um VetoableChangeListener ao JInternalFrame:

http://java.sun.com/javase/6/docs/api/javax/swing/JComponent.html#addVetoableChangeListener(java.beans.VetoableChangeListener)

Este VetoableChangeListener deve observar a propriedade JInternalFrame.IS_CLOSED_PROPERTY, e lançar uma exceção do tipo PropertyVetoException caso a mudança de propriedade não seja adequada.