Personalizar JOptionPane, tem como?

Pessoal,

Uso JOptionPane, mas precisava alterar a fonte do texto e os botões.

Criei os botões e consegui inserir no JOptionPane, mas eles não tem os listeners do botão padrão do JOptionPane. Tentei implementar o onClick com return 0, 1, …n mas não deu certo.

Como faço essas duas alterações?

Hum… quase todo mundo que quer personalizar um JOptionPane acaba pedindo um monte de coisas que não é fácil de implementar ou de alterar em um JOptionPane. Por exemplo, é um pouco complicado alterar os textos para que eles fiquem em português.

O que eu recomendaria é criar uma classe derivada de JDialog que tivesse alguma flexibilidade (por exemplo, você poder indicar quantos botões você quer, etc). Então você usaria essa classe em vez de tentar “torcer” o JOptionPane. Você, se for um pouco esperto, vai precisar fazer isso uma vez só, e depois reaproveitar em seus projetos.

Eu já criei um componente assim, mas queria era economizar linhas de código. Pensei que isso era fácil.

Valeu.

Oi pessoal…

Referente ao JOptionPane, queria implementar um código numa janela do JOptionPane do NetBeans. Por exemplo, no código abaixo, onde esta destacado em negrito, queria que quando o usuário clicasse em OK, da caixa de diálogo(showMessageDialog), abrisse outro Form (no caso, JFrame). Tem como?

Beijos pessoal…

alt4=(BD.resultSet.getString(“alt4”));
resposta=(BD.resultSet.getString(“resposta”));
cont=(BD.resultSet.getInt(“id”));
}
if (cont!=pontos.id){
this.dispose();
JOptionPane.showMessageDialog(null, “Fim de Jogo”);
System.exit(0);
}
}
catch(java.lang.Exception ex)
{
ex.printStackTrace();
}

Ressusintando um topico :P,

Com MessageDialog vc não consegue, vc pode colocar um ConfirmDialog e customizar para ele ter somente o botão OK,

JOptionPane.OK_OPTION

e em um if vc consegue fazer por exemplo

if(JOptionPane.showConfirmDialog(null, "", "", JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_OPTION) == JOptionPane.OK_OPTION){
  //faz algo
}