Cast de valores da JTable

3 respostas
MarcosOLIVEIRA

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??

3 Respostas

MarcosOLIVEIRA

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

ViniGodoy

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.

MarcosOLIVEIRA

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.

Criado 21 de abril de 2009
Ultima resposta 22 de abr. de 2009
Respostas 3
Participantes 2