Como faço para calcular todos os valores de uma coluna jtable?
14 respostas
java
B
Breno_Henrrique
TenhoumatabelacomonomedetabelaCompra,nelatenhoumacolunatotal,queroqueessasomeosvaloresqueestãonessacolunaejogueemumajtextfieldbarraTotal.Masestoutendounsproblemas,fizumasomaparapegardoisvaloresdeduastextfildsesalvarnabarraTotal,maselenãoestásalvandonabarratotal.Outroproblemaéquenãoseicomofaçoparaelepegarosvaloresdessacolunatotal,eirsomandoemostrandonabarraTotal.Fizessemétodo:privatevoidcalculaTotal(){intsoma=0;try{for(inti=0;i<tabelaCompra.getColumnCount();i++){DoublevalorAux=(Double)tabelaCompra.getValueAt(i,6);soma+=valorAux;}Double.parseDouble(barraTotal.getText());barraTotal.setText(String.valueOf(soma));}catch(NumberFormatExceptione){JOptionPane.showMessageDialog(null,"Erro ao calcular Total Produtos: "+e.getMessage());}}
Depois dentro do botão confirmar eu fiz essas somas de textfilds e chamei o método:
Eu não entendi muito bem, vc ta conseguindo fazer a soma da tabela? Se não, tenta esse código de baixo, eu acho que tem que fazer algumas alteraçoes de acordo com vc, mas eu tentei mexer pra se adaptar.
Faz assim pra ir somando quando adicionar um novo item,… A cada adicionada de item, você chama esse metodo “somarValores”, pq ele vai adicionar o item na tabela e vai atualizar a soma
publicvoidsomarValores(){try{doublesomaTotal=0;for(inti=0;i<tabelaCompra.getRowCount();i++){somaTotalRecebido+=Double.parseDouble(tabelarecebidos.getValueAt(i,6).toString());//AQUI VC JOGA PRO JTEXTFIELDbarraTotal.setText(""+somaTotal);}}catch(NumberFormatException|SQLExceptione){System.out.println("Erro ao somar: "+e.getMessage());}}
B
Breno_Henrrique
Tentei fazer como você disse continua o erro, tenho dois problemas em suma, primeiro não consigo fazer a multiplicação para sair no textfield barraTotal, para ai eu salvar na tabela.
fiz assim mas ele não pega os valores e joga na textfiled barraTotal. Tu sabe me dizer como resolver isso? talvez dai já clareie para o próximo problema.
R
rodriguesabner
Fiz uns testes aqui, e comigo funcionou usando “double” ao invés de “int”
Outra coisa que aqui não funcionou, foi o: Double.parseDouble(barraTotal.getText());, tira essa linha e testa aí…
B
Breno_Henrrique
Bom essa parte deu certo, aparentemente o erro era essa linha mesmo Double.parseDouble(barraTotal.getText());
Agora usei o seu método somarValores mas ele não pegou os valores da coluna total, ele só mostra o valor de um por um. você sabe dizer onde estaria o erro?
R
rodriguesabner
Olha cara, eu testei aqui, adicionei valores e funcionou normalmente…
publicvoidsomarValores(){try{doublesomaTotal=0;for(inti=0;i<tabelagastos.getRowCount();i++){somaTotal+=Double.parseDouble(tabelagastos.getValueAt(i,2).toString());//AQUI VC JOGA PRO JTEXTFIELDjLabel8.setText(""+somaTotal);}}catch(NumberFormatExceptione){System.out.println("Erro ao somar: "+e.getMessage());}}
Apresenta algum erro aí?
B
Breno_Henrrique
Pelo que vi o seu está em uma jlabel. O meu queria que fosse para um jtextfield para eu salvar no mysql o resultado dele. Será que o problema foi esse? No meu ele não faz a soma da coluna.
R
rodriguesabner
Não, é a mesma coisa, o jlabel/textfield é só coisa da interface. O que vale mesmo é a escrita.
Deu algum erro aí?
B
Breno_Henrrique
O meu método baseado no seu ficou assim
publicvoidsomarValores(){try{doublesomaTotal=0;for(inti=0;i<tabelaCompra.getRowCount();i++){somaTotal+=Double.parseDouble(tabelaCompra.getValueAt(i,6).toString());barraTotal.setText(String.valueOf(somaTotal));//AQUI VC JOGA PRO JTEXTFIELDbarraTotal.setText(""+somaTotal);
Ele salva os valores na coluna, mas não os soma. Você tem ideia do porque?
B
Breno_Henrrique
Estava dando uma olhada e percebi que o primeiro valor que ele salva na tabela ele salva vazio e todos os outros ele salva normal, coloquei pra ele dar um JOptionPane para mostrar a mensagem de erro em tela, e ele tá retornando a mensagem de erro “empty string”
Estava dando uma olhada e o erro de java.lang.ArrayIndexOutOfBoundsException: 6 >= 6 mas eu tenho exatamente 6 campos na minha tabela partindo do campo 0. Então não sei onde seria o erro.
Tô realmente sem ideia do que seja, alguém pode me ajudar por favor.
R
rodriguesabner
cara, faz assim, coloca isso de somar em um botão e vê o resultado, deixa tudo aparecer e depois você clica no botão pra sair a soma