Escolar Documentos
Profissional Documentos
Cultura Documentos
Calculando Dados Da Jtable
Calculando Dados Da Jtable
coluna, por ex: Codigo | Data | Valor 1 01.02.2010 35,00 2 01.02.2010 50,00 Preciso somar a ultima coluna e jogar o resultado em um Label (Valor = 85,00) Alguem pode me ajudar?
This message was edited 2 times. Last update was at 01/02/2010 00:10:59
01/02/2010 08:02:07
ViniGodoy
Moderador
Pegue a lista de objetos que deu origem ao seu TableModel, faa a soma e jogue no label. Pouco importa o que a JTable desenhou.
@ViniGodoy - Lattes Tem dvidas de Java? Poste no frum! No respondo dvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov Facebook Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro). Ei... voc est usando DefaultTableModel no seu projeto?? No faa isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
01/02/2010 08:04:14
Felagund
GUJ Master
esses dados so carregados? ou o usuario pode digitar isso? qualquer coisa com um loop vc consegue
view plain copy to clipboard print ?
1. 2. 3.
Membro desde: 26/07/2006 11:51:36 Mensagens: 1732 Localizao: Santa e Bela Catarina Offline
4. 5.
BigDecimal total = BigDecimal.ZERO; or(int i = 0; i < tabela.getRowCount();i++) { String valor = tabela.getValueAt(i, 2) +""; //lembrando que 2 o indice da coluna valor. BigDecimal vl = new BigDecimal(valor.replace (",", ".")); total = total.add(vl);
Utilizo o BigDecimal por ele mais preciso para fazer calculo com valores.
att Rafael Felix Rolling With Code Twitter
01/02/2010 20:41:02
juninhon1
Entusiasta Java Membro desde: 31/12/2008 13:13:20 Mensagens: 21
Offline
This message was edited 4 times. Last update was at 01/02/2010 20:52:00
01/02/2010 21:50:33
juninhon1
Entusiasta Java Membro desde: 31/12/2008 13:13:20 Mensagens: 21 Offline
Agora estou precisando de outra ajuda, nessa mesma tabela que mostrei acima tem o seguinte:
view plain copy to clipboard print ?
1. 2. 3.
Codigo | Valor | 1 2
Tipo
Data 01.01.2010
| 35,
Entrada
Quero fazer uma calculo entre esses campos, com o filtro Entrada e Saida: Quando for entrada ele soma quando for saida ele subtrai, tentei fazer o seguinte somar tudo que for Tipo == Entrada mas imprime no Label = 0 Segue o Codigo:
view plain copy to clipboard print ?
1. 2. 3. 4. 5. 6. 7. 8. 9.
String TipoE = "Entrada""; BigDecimal total = BigDecimal.ZERO; preencherJtable(); //metodo para preencher JTable for(int i = 0; i < jTable1.getRowCount();i++){ String Tipo = jTable1.getValueAt(i, 3)+""; //pegando a coluna que quero fazer o equals while(Tipo.equals(TipoE)) { String valor = jTable1.getValueAt(i, 5)+""; //pegando a coluna que quero fazer o calculo com filtro di Tipo BigDecimal vl = new BigDecimal(valor.replace(",", ".")); total = total.add(vl); } } Label_Valor.setText(String.valueOf (total)); //Lable que imprime o resultado
mas quando eu executo esse codigo trava a minha maquina e no da erro algum... tenho que finalizar o programa no gerenciador de Tarefas. Alguem pode me ajudar?
01/02/2010 23:18:01
juninhon1
Entusiasta Java Membro desde: 31/12/2008 13:13:20 Mensagens: 21 Offline
view plain
copy to clipboard
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
String TipoE = "Entrada", TipoS = "Saida"; BigDecimal BigDecimal.ZERO; BigDecimal BigDecimal.ZERO; BigDecimal totalSaida = totalEntrada = total = BigDecimal.ZERO;
preencherJtable(); try{ for(int i = 0; i < jTable1.getRowCount();i++){ String valorEntrada = String.valueOf(jTable1.getValueAt(i,3)); if(valorEntrada.equals (TipoE)){ String valor = jTable1.getValueAt(i, 5)+""; //lembrando que 2 o indice da coluna valor. BigDecimal v1 = new BigDecimal(valor.replace(",", ".")); totalEntrada = totalEntrada.add(v1); String resEntrada = totalEntrada.toString(); } } for(int x = 0; x < jTable1.getRowCount();x++){ String valorSaida = String.valueOf(jTable1.getValueAt(x,3)); if(valorSaida.equals (TipoS)){ String valor = jTable1.getValueAt(x, 5)+""; //lembrando que 2 o indice da coluna valor. BigDecimal v2 = new BigDecimal(valor.replace(",", ".")); totalSaida = totalSaida.add(v2); String resSaida = totalSaida.toString(); } } total = totalEntrada.subtract (totalSaida); Label_Valor.setText(String.valueOf (total)); } catch (NullPointerException erro) { System.out.println (erro.getMessage()); }
35. 36.