Prezados,
Eu tenho uma passagem do meu código simples que mostra para o usuário na tela uma pergunta se ele confirma ou não o desejo de sair do programa, segue o código:
if (JOptionPane.showOptionDialog(this, "Deseja realmente sair?", StringConstants.GLOBAL_TITULO_SISTEMA, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null) == JOptionPane.YES_OPTION) {
Runtime.getRuntime().exit(0);
}
O problema todo é que se eu estou utilizando uma interface sem um LookAndFeel a tabulação nos botões do meu JDialog não funcionam. Eu posso apertar a tecla TAB que ele vai pro botão “Não”, mas ao pressionar “Enter” o sistema pega o valor do botão “Sim.”
Agora quando no construtor da minha classe, classe esta que extende JFrame, eu utilizo o LookAndFeel do Windows o sistema funciona normalmente. A caixa de diálogo aberta recupera o valor do botão “Não” quando eu pressiono Enter neste botão. Segue o código do construtor:
private Construtor() {
super();
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (final ClassNotFoundException e) {
RenameImagensCompraFacil.log.error("Tentativa de iniciar sistema com layout de aplicações para Windows falhou.");
} catch (final InstantiationException e) {
RenameImagensCompraFacil.log.error("Tentativa de iniciar sistema com layout de aplicações para Windows falhou.");
} catch (final IllegalAccessException e) {
RenameImagensCompraFacil.log.error("Tentativa de iniciar sistema com layout de aplicações para Windows falhou.");
} catch (final UnsupportedLookAndFeelException e) {
RenameImagensCompraFacil.log.error("Tentativa de iniciar sistema com layout de aplicações para Windows falhou.");
}
}
Alguém saberia me dizer como fazer para que o sistema se comporte da mesma forma, independente de plataforma.
Obrigado de antemão a todos!