JOptionPane

Ola malta,

Eu tenho este JOptionPane e queria saber se alguem me podia ajudar, porque este painel quando eu faço “yes” ele entra no “if” e faz “System.exit(0);” e feixa-me a aplicação. Gostava de saber como faço para ele em vez de fechar aplicação cancelar apenas a operação que tou a fazer.

Abraço

int i = JOptionPane.showConfirmDialog(null ,"Deseja fechar a aplicação?",
          "Saída",JOptionPane.YES_NO_OPTION);
          if (i == JOptionPane.YES_OPTION ) {
            System.exit(0);
          }
 int i = JOptionPane.showConfirmDialog(null ,"Deseja fechar a aplicação?",
"Saída",JOptionPane.YES_NO_OPTION);
if (i == JOptionPane.YES_OPTION ) {
System.exit(0);
} else {
  //bote sua operaçao aqui!
}

Olá
Quando vc faz

if (i == JOptionPane.YES_OPTION ) { System.exit(0); }
vc está comparando se o valor da variavel i é igual ao valor
JOptionPane.YES_OPTION
Quando vc coloca a Opção

JOptionPane.YES_NO_OPTION

Vc esta falando que deseja que aparece dois botões na dialog o YES e o NO
e que cada botão tem um valor fixo que retorna para a variavel
i e depois vc fez a comparação para saber se o valor
da variavel era igual ao valor retornado da messagem
existe tambem

JOptionPane.NO_OPTION //se clicou no botão No //e o JOptionPane.CANCEL_OPTION//este e para quando vc usa JOptionPane.YES_NO_CANCEL_OPTION, usando esta opção vai aparecer três botoes YES, NO, CANCEL ai vc faz as verificaçoes if( variavel == JOptionPane.YES_OPTION ) //faz operação else if( variavel == JOptionPane.NO_OPTION ) //faz operação else //faz operação
está são as operações para o JOptionPane.showConfirmDialog() ou
JOptionPane.showInternalConfirmDialog()
ate

Também é possivel comparar o JOptionPane sem atribuir valor algum a alguma variavel.

if ((JOptionPane.showConfirmDialog(null ,“Deseja fechar a aplicação?”,

“Saída”, JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION )) {

System.exit(0);

} else {

//bote sua operaçao aqui!

}

Ou

Quando vc atribui uma entrada JOptionPane.YES_NO_OPTION a uma variavel, essa variavel recebe o valor inteiro de 1 ou 0. 1 para YES_OPTION, e 0 para NO_OPTION.

int i = JOptionPane.showConfirmDialog(null ,“Deseja fechar a aplicação?”,

“Saída”,JOptionPane.YES_NO_OPTION);

if (i == 1) { //Se (i == JOptionPane.YES_OPTION)

System.exit(0);

} else {

//bote sua operaçao aqui!

}