opa pessoal to com mais problema aqui!!
tenho um jtable que preciso pegar altura, largura, preço etc…
e fazer calculos usando esses dados.
eu recebo esses dados como Object da tabela cada vez que um tecla é apertada e converto-os para string para entao utilizar o Double.parsedouble para transformar para double e fazer os calculos
mas ele nao deixa fazer o casting para algumas linhas da tabela
largura = Double.parseDouble((String)jTableITEM.getValueAt(jTableITEM.getSelectedRow(), 5));
altura = Double.parseDouble((String)jTableITEM.getValueAt(jTableITEM.getSelectedRow(), 6));
eis o erro
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.String
at Processos.Orcamento.jTableITEMKeyPressed(Orcamento.java:763)
alguma ideia??
resolvi!
nao sei porque (mas seria interessante se alguem respondesse) a JTable nao permitiu que eu pegasse os valores com . (ponto)
simplesmente setei todos os valores com , e na hora de fazer os calculos usei replace() para trocar as virgulas por ponto e entao converter para double.
funcionou legal! ficou meio POG mas foi a soluçao que encontrei
se alguem souber o motivo…
abraços
O ideal seria eliminar totalmente esses casts. Isso sim, evitaria o POG.
Para isso, você tem que parar de usar o tenebroso DefaultTableModel, e implementar um JTable do jeito certo. Isso não só vai eliminar esses casts horríveis, como vai tornar seu código mais seguro, mais orientado a objetos, mais fácil e vai evitar a duplicação de dados, que ocorre quando você copia os valores de suas classes de negócio para dentro do model.
Aqui estão ótimos tutoriais, que ensinam a fazer isso:
http://www.informit.com/articles/article.aspx?p=332278
http://www.informit.com/articles/article.aspx?p=333472
Neste tópico também tem um exemplo de um model, com comentários:
http://www.guj.com.br/posts/list/98452.java#530523
Eu recomendo fortemente que você aprenda o jeito certo de trabalhar com JTable e evite o POG.
valeu vou dar um estudada!
a gente sempre vai na pressa, busca a solução mais fácil e acaba atropelando certos principios da boa programaçao.