Somar colunas de uma jTable

5 respostas
java
V

Boa noite,

Estou tentando somar uma coluna de uma jTable, porém sem sucesso, a coluna é do tipo Float, segue o código abaixo:

Float soma = null;
    for (int i = 0; i < jTableProdutosAdd.getColumnCount(); i++) {
        Float valor = (Float) jTableProdutosAdd.getValueAt(i, 2);
        soma += valor;
    }
    ValorTotal.setText(String.valueOf(soma));
}

Qual o erro ? Preciso manter o tipo como float por enquanto.

5 Respostas

A

getColumnCount() , esse metodo retorna o numero de colunas na linha , pelo que entendi nao seria melhor pegar a quantidade de linhas na tabela para o for?

S

Você sabe que Float e float são tipos de dados diferentes né?

Você tem Float soma = null e depois tem soma += valor.

Devido ao auto unboxing e auto boxing, o código da sua soma é equivalente a fazer isso:

soma = Float.valueOf(soma.floatValue() + valor.floatValue());

O que acontece quando se chama o método floatValue() em um objeto null?

Aliás, o que acontece ao se tentar acessar qualquer membro de um objeto null?

V

Ele não retorna nada, qual seria melhor forma de realizar a soma da coluna?

V

pra quem precisar no futuro,a solução para meu caso foi o seguinte:

double somaTotal=0;
    for(int i=0; i<jTableProdutosAdd.getRowCount();i++)
        somaTotal += Double.parseDouble(jTableProdutosAdd.getValueAt(i, 2).toString());
    ValorTotal.setText(""+somaTotal);
S

Não, ao acessar um membro de um objeto null, acontece NullPointerException.
É só você trocar de Float para float e inicializar com zero que vai resolver.

Criado 16 de outubro de 2018
Ultima resposta 18 de out. de 2018
Respostas 5
Participantes 3