JOptionPane, Problema sério!

Oi,

estou aqui me quebrando para uma duvida que deve ser simples…
tenho uma JOptionPane no qual pergunto se deseja sair do programa.

o que acontece é que: indiferente de clicar em SIM ou em NÃO somente utilizando a tecla ENTER do teclado ele pega por default a tecla SIM e nunca entra no else do meu if:

[code]int
i = JOptionPane.showConfirmDialog
(
null,
“Deseja sair?”,
“Sada”,
JOptionPane.YES_NO_OPTION
);
//
// Pergunta se deseja cancelar a transao ou no.
//
if (
i == JOptionPane.YES_OPTION
)
{

}
else
{

}[/code]

Why?

Obs: Eu tenho um outro IF acima (que é uma outra janela) e me retorna um booleano… no caso TRUE ou FALSO…
pelo fato de retornar esse booleano da outra janela essa pode ser afetada?

Tchauzin!

O seu problema é que ao teclar enter num JOptionPane ele dá como resposta o YES, ao clique do mouse responde normalmente? Provavelmente o botão foco default dele é o YES, talvez seja possível alterar.

Não acho que você tá tratando direito isso. E se o cara só fechar o JOptionPane? Você, pelo que postou, tá tratando o negócio só com um else… Tá realmente certo isso?

Veja:

public class ExpiredDialog extends JDialog {

private final JOptionPane optionPane ;
private int n;

public ExpiredDialog(Frame frame, String title, boolean modal) {
super(frame, title, true);

Object[] options = {"Yes", "No"};

optionPane = new JOptionPane(
"Version expired,\n"
+ " continue? ",
JOptionPane.QUESTION_MESSAGE,
JOptionPane.YES_NO_OPTION);

n = optionPane.getOptionType();

if ( n == optionPane.YES_OPTION ) {
this.setVisible(false);
this.dispose();

}
else if ( n == optionPane.NO_OPTION ) {
this.setVisible(false);
System.exit(0);
}
this.setContentPane(optionPane);
pack();
}

public ExpiredDialog() {
this(null, "" , false);
}
} 

Como altero essa opção default?

Sim, posso tratar apenas com o else… se não for o SIM eu só tenho mais uma opção, no caso o NÃO…

Testei com o seu código e também não funcionou…

Tchauzin!

Ve se te ajuda

JOptionPane

public JOptionPane(Object message,
int messageType,
int optionType,
Icon icon,
Object[] options,
Object initialValue)

Creates an instance of JOptionPane to display a message with the specified message type, icon, and options, with the initially-selected option specified.

Parameters:
    message - the Object to display
    messageType - the type of message to be displayed: ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, or PLAIN_MESSAGE
    optionType - the options to display in the pane: DEFAULT_OPTION, YES_NO_OPTION, YES_NO_CANCEL_OPTION, OK_CANCEL_OPTION
    icon - the Icon image to display
    options - the choices the user can select
    [b]initialValue[/b]- the choice that is initially selected; if null, then nothing will be initially selected; only meaningful if options is used

retirado de: http://java.sun.com/javase/6/docs/api/