Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date
at GUI.FrmAluno.atualizaTextArea(FrmAluno.java:330)
Stringmatricula=(String)jTable1.getModel().getValueAt(linhaSelecionada,0);Stringnome=(String)jTable1.getModel().getValueAt(linhaSelecionada,1);Datedtnascimento=(Date)jTable1.getModel().getValueAt(linhaSelecionada,2);// LINHA 330 - NESTA LINHA
Você não pode converter (casting) de um tipo diretamente para outro. A única exceção a isso são classes com herança e entre tipos primitivos numerais. Exemplo:
O código acima funciona. Mas, no seu caso, você quer converter de um String para um Date. O casting não funciona assim. Para fazer o que você quer, tem que usar uma classe que faça essa conversão.
Veja um exemplo de um post aqui mesmo do GUJ:
nel
Mais simples que isso, impossível. O próprio erro te diz o que está ocorrendo, em outras palavras “não posso converter um tipo String para um tipo Date”.
Você tem que fazer a conversão “manualmente”, ou seja, em código.
Isso: jTable1.getModel().getValueAt(linhaSelecionada, 2) retorna uma String e não um Date
O erro sumiu só que fica assim Wed Apr 03 00:00:00 BRT 2013, não teria como deixar formato DD/MM/AAAA?
rtva
Ola,
Veja se consegue entender, você precisa converter duas vezes, a primeira o format é do mesmo tipo que esta recebendo e a segunda do tipo que quer que fique.