Dúvidas JOptionPane

9 respostas
Z

Olhem o código:

import javax.swing.JOptionPane;


public class Teste {
	public static void main (String args[])
	{
		int
		resposta		=	JOptionPane.showConfirmDialog(null, "Testando");
		
		if	(resposta == 0)
		{
			System.out.println("Resposta SIM");
		}
		else
		{
			System.out.println("Outra resposta");
		}	
	}
}

Porq ele só entra na condição (resposta == 0) quando aperto a tecla ENTER do teclado?? se eu for na opção NÃO ele entra, se eu for na opção CANCEL ele entra.....

Porém quando utilizo a tecla SPACE ou mouse ele funciona???????

vlw!

9 Respostas

wagne23

Zagaia , não entendi sua duvida, testei sua classe e esta funcionando perfeitamente. Poderia ser mais especifico no que voce quer fazer?? Falou!

leoramos

Falei bobagem hehe

Z

Ok,

aperta TAB e vai para o botão NÃO.
depois clique com a tecla ENTER… automaticamente ele aperta a tecla SIM.

Why?

ViniGodoy

Primeiro de tudo, pq vc está comparando com 0?
Assim o código fica confuso mesmo.

O correto é fazer assim:
import javax.swing.JOptionPane;

public class Teste {
    public static void main(String args[]) {
        int resposta = JOptionPane.showConfirmDialog(null, "Testando");

        if (resposta == JOptionPane.YES_OPTION) {
            System.out.println("Resposta SIM");
        } else {
            System.out.println("Outra resposta");
        }
    }
}

Não fica muito mais fácil de ler?

ViniGodoy

Porque o enter ativa a ação do botão padrão.

O botão padrão é aquele que tem a borda mais grossa, no caso, o sim.

Para ativar a ação do botão corrente, vc deve pressionar espaço.

Z

Tudo bem… mãs… teria como resolver com ENTER? ou é impossivel?

Z

Alguem?
como tirar essa opção default??
eu preciso do ENTER funcionando!

ViniGodoy

No início do seu main, acrescente a linha:

UIManager.put("Button.defaultButtonFollowsFocus", Boolean.TRUE);

Isso vai ser válido para todos os seus botões default.

Z

Funcionou!

Vlw!

Criado 29 de julho de 2008
Ultima resposta 29 de jul. de 2008
Respostas 9
Participantes 4