Estou utilizando um objeto da classe JOptionPane para exibir uma mensagem e ele contém três botões (sim, não, cancelar).
Daí um dos botões fica com o foco e isso pode ser alterado dando um “TAB”, mas quando o usuário clica no “ENTER”, ele não faz nada, ou seja, ele não interpreta isso como uma execução do botão, já se o usuário clicar no “ESPAÇO” ele interpreta corretamente e o software continua normalmente.
O que devo fazer para que quando o usuário clicar “ENTER” ele execute aquela funcionalidade do botão correspondente? Como capturo isso?
Você terá que adicionar um KeyLister, que é o “cara” que vai ficar escutando os eventos que acontecem no teclado. De uma pesquisa que aqui no guj mesmo você vai achar alguns exemplos. E também tem a documentação da api http://java.sun.com/j2se/1.5.0/docs/api/java/awt/event/KeyEvent.html
http://www.devx.com/tips/Tip/14318 diz o que pode ser feito em um JDialog ou JFrame; entretanto, um botão que tem o foco de um JOptionPane deve ser acionado com a barra de espaços, não com ENTER (infelizmente). Se precisar REALMENTE disso, talvez você tenha de fazer uma subclasse de JOptionPane que tenha o comportamento desejado.