Navegar entre opções showOptionDialog();

Tenho o seguinte showOptionDialog():

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

JOptionPane.showOptionDialog(this.getContentPane(), “Deseja excluir o registro ?”, “Informação”, JOptionPane.YES_NO_OPTION,
OptionPane.WARNING_MESSAGE, null, options, options[1]);[/code]

Porém, eu não consigo navegar entre as opções " Sim " e " Não " com as setinhas do teclado.
Nesse exemplo, vem com foco padrão a opção " Não " para o usuário não deletar o registro sem querer.
Mas se eu quiser ir para o " Sim " só consigo pelo mouse e gostaria de poder manipular isso com as setinhas do teclado…

A única forma de fazer isso, sem ter de reescrever seu próprio JOptionPane, é você navegar com as teclas Tab e Shift+Tab.
Para você “apertar o botão”, use a barra de espaços.

Infelizmente, mesmo usando um outro Look & Feel, as setas não se deslocam entre os botões.

Se isso for realmente um requisito de projeto, eu aconselharia a escrever um substituto para o JOptionPane que faça exatamente o que seu cliente quer. (Normalmente isso parece bem mais profissional, embora seja meio trabalhoso). O JOptionPane é mais um “quebra-galho” que outra coisa.

De qualquer forma, se você precisa se deslocar entre botões e campos sem usar apenas a tecla TAB, você precisa aprender a usar “key bindings”. Por exemplo:

http://www.guj.com.br/posts/list/92862.java#497384

(Nesse exemplo o Thingol ensina a usar o ENTER como se fosse o TAB (passar para o próximo campo), e as setas para navegar entre campos).

Veja também: http://java.sun.com/docs/books/tutorial/uiswing/misc/keybinding.html