Opção de confirmação com o comando JOptionPane.showOptionDialog

Olá Pessoal,

Poderiam me dar uma força?

Estou montando um sisteminha para o cadastro de clientes (projeto da faculdade), e como nem sempre o cliente quer cadastrar o seu endereço, coloquei uma pergunta através da opção JOptionPane.showOptionDialog de um jeito que eu havia visto em outro tópico aqui do fórum.

O Código ficou desta forma:

int validarConfirmacaoEndereco = 0;

Object[] opcoes = { "Sim", "Não" };

validarConfirmacaoEndereco = JOptionPane.showOptionDialog(null, "Deseja cadastrar um endereço para este cliente? ", "Cadastro de Endereços", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, opcoes, opcoes[0]);

O problema é que quando aperto a tecla Tab o foco vai para o botão “Não” porém ele grava na variavel validarConfirmacaoEndereco o valor zero que corresponde ao “Sim”

Tem como arrumar isso?

Obs.: Lembrando que eu só postei um pedaço do codigo, a declaração da variavel fica no inicio do programa e ele não volta mais nela ou em qual outro lugar para setar zero na variavel que não seja apertando o “Sim” da mensagem. Acredito que seja um problema de foco mesmo!

Usa o JOptionPane.showConfirmDialog(), nele ja existe a opção SIM e NÃO… e o retorno é 0-sim 1-não

2 curtidas

Boa noite Jederson,

Sim a principio usei desta forma:

validarConfirmacaoEndereco = JOptionPane.showConfirmDialog(null, "Deseja cadastrar um endereço para este cliente?");

Só que mudei porque para mim, não havia a utilidade de ter um “Sim”,“Não”, e “Cancelar” e não consegui implementar no showConfirmDialog o meu objetc opcoes.

Porém da mesma forma que eu falei ocorre o erro do Tab, se eu apertar tab o foco vai para o botão de “Não”, mas grava o valor do “Sim”.

kkk o seu vetor so tem duas opções: sim e não, vc so ta refazendo a roda.
Bem… eu testei usando o TAB para mudar o foco nos botoes, e realmente ele somente imprimiu um valor. so altera o valor, com o evento do click do mouse.

O botão padrão pra selecionar uma opção no JOptionPane é a tecla “Espaço” e não “Enter”.

Cara, utiliza o JOptionPane.showConfirmDialog(); e para de reinventar a roda.