Galera,
Mandei escrever na tela uma mensagem utilizando o JOptionPane.showConfirmDialog… porem o botão default para o usuario apertar fica sendo o ‘YES’… eu gostaria de mudar para o ‘NO’…
Como proceder?
Obrigado!
Galera,
Mandei escrever na tela uma mensagem utilizando o JOptionPane.showConfirmDialog… porem o botão default para o usuario apertar fica sendo o ‘YES’… eu gostaria de mudar para o ‘NO’…
Como proceder?
Obrigado!
Cara ai vai uma maneira de fazer
Object[] options = {" Sim ", " Não "};
int n = JOptionPane.showOptionDialog(null," Deseja realmente sair do programa ?","Sair do Programa",
JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,options[1]);
if(n == 0){
System.exit(0);
}
esse carinha que faz isso : options[1]
Espero ter ajudado
abs
Cara,
funcionou… muito obrigado…
vou deixar o tópico em aberto, porque se alguem tiver alguma
solução com o Confirm tmb… será bem-vinda!
e assim, saberemos mais uma informação a respeito!
Abraços!
Gujeiros…
Estou com problema com a solução passada pelo amigo ali em cima…
Quando deixo a opção default no Cancelar e abro a caixa de mensagem, aparece certinho no default ‘Cancelar’… após isso, eu clico em ENTER. beleza… ele cancela e fecha a janela…
OK, abro ela de novo… e o fica por default ainda em Cancelar… porem quando mudo o focu apertando TAB para o OK e clico com o ENTER do teclado, a opção ainda fica no botão Cancelar… e nao executa o OK… =/
Só funciona normal com as teclas do Mouse e o Espaço do teclado…
Alguma solução… código abaixo:
//
// Muda o nome dos botões da janela de mensagem.
//
Object[]
options = {
"OK",
"Cancelar"
};
//
// Faz a pergunta.
//
int
i = JOptionPane.showOptionDialog(
null,
"",
"Sair",
JOptionPane.YES_NO_OPTION,
JOptionPane.ERROR_MESSAGE,
null,
options,
options[1]
);
//
// Se resposta for 'Abortar'.
//
if (
i == JOptionPane.YES_OPTION
)
{
// Finalize.
}
else
{
//
// Fecha somenta a janela.
//
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}
cara tenta dar um sysout nesse cara aqui
JOptionPane.YES_OPTION
ele tem que ser igual a zero para ser o OK
abs
É que o default é associado a tecla enter.
Vc teria que associar o default ao seu botão OK ou sim, e o “DefaultCancel” ao Cancelar, que no caso usaria a tecla ESC.
Deixa ver se eu implemento algo…
Parece que o problema não está na solução dada pelo mmenezes , mas sim na própria implementação do “Joptionpane”. Executem o código abaixo:
[code]import javax.swing.JOptionPane;
public class Test {
public Test(){
int valor = JOptionPane.showConfirmDialog(null,“Teste”,
“Por favor, responda”,0);
System.out.println(valor);
}
public static void main(String args[]){
Test t = new Test();
}
}[/code]
Cliquem no YES e vejam o resultado. (resultado = 0)
Depois Cliquem no NO e vejam o resultado. (resultado = 1)
Depois Dêem Tab(para que a seleção vá para o NO), teclem enter e vejam o resultado. Não muda! O retorno continua sendo zero, ou seja, do YES.
…é como se tivéssemos que implementar um KeyListener para que ao teclar Tab a seleção vá de fato para o NO.
Mas como fazer isso para um JoptionPane?! Idéias?!