Olá pessoal,
Sou iniciante em java e estou tentando melhorar a aparência do meu JOptionPane.
Basicamente, no caso de uma SQLExcepition, eu devo retornar uma mensagem por MessageDialog. Até aí sem problemas.
Porém eu queria colocar a opção de expandir e recolher o código da Exceção, e que ficasse aparente apenas uma mensagem padrão e se o usuário clicasse em “Mais informações”, aí sim ele conseguiria ver o código da exceção.
Isso é possível?
Cara até onde eu conheço acho que não é possível, gostaria de saber também pra implementar nas minhas aplicações, mas você pode fazer da seguinte maneira, eu já utilizei, não é tão elegante como expandir o erro no mesmo jOptionPane como você citou, mas funciona!
Exiba um ConfirmDialog, informando o usuário sobre o erro e perguntando se ele deseja saber mais, caso ele clique em sim, você pode exibir um MessageDialog só com o erro, e caso não queira fecha o ConfirmDialog.
1 curtida
Você pode adicionar um JPanel a seu JOptionPane (também não sabia que era possível
) Veja aqui um exemplo: http://stackoverflow.com/questions/12234850/customize-joptionpane-dialog
Dentro do JPanel, você pode fazer o que quiser (tudo o que dá pra fazer com um JPanel, obviamente). Talvez você precise estudar um pouco para ver como fazer o JOptionPane redimensionar, por exemplo (o parent do JPanel será o JOptionPane , então você consegue acessá-lo).
Outra opção é criar um JDialog modal customizado (que é basicamente um JFrame).
Uma observação, entretanto: não vejo motivo para você exibir o stacktrace na sua aplicação. Isso ajuda para no desenvolvimento, mas o usuário final não saberá o que fazer com essa informação (SQLExpection não diz nada pra ele). Se o objetivo é que ele seja capaz de te passar o erro que deu em produção, é mais simples gravar um arquivo de log com a exceção (onde você pode, inclusive, adicionar mais detalhes do que a exceção simplesmente).
Abraço.
1 curtida
Obrigado pelas respostas Jonathan_Medeiros e TerraSkilll…
TerraSkilll seu argumento faz sentido, vou ver ainda o que fazer com as exceções!
Vlwww