Calculando valores em um JTable. Como fazer?

3 respostas
W

Olá galera do guj,

estou recorendo a vc para resolver um problema com relação a minha jTable. Estou querendo fazer com que alguns valores sejam calculados. a minha tabela tem o seguinte, tenho a coluna produto, valor unitario, quantidade e valor total, quero fazer com que seja calculado o total de cada item que foi comprado por exemplo: comprei um determinado produto e ele tem um valor de 2,50 e a quantidade que comprei foi de 5 itens do mesmo produto. O que estou querendo é fazer uma função que calcule o valor total desse produto que comprei. Já tenho uma função o problema é que se eu inserir mais de um produto o resultado das outras linhas não fica correto. abaixo tenho o metodo que estou usando:

private void CalcularValorTotal(){
         BigDecimal  total = BigDecimal.ZERO;
            BigDecimal quantidade = BigDecimal.ZERO;
            for(int i = 0; i < dtmproduto.getRowCount();i++){
            
            String valor = dtmproduto.getValueAt(i, 1)+""; 
            String qtde = dtmproduto.getValueAt(i, 2)+"";
            BigDecimal vl = new BigDecimal(valor.replace(",", "."));
            BigDecimal de = new BigDecimal(qtde.replace(",", "."));
            total = total.add(vl);
            quantidade = quantidade.add(de);
            BigDecimal resultado =  total.multiply(quantidade);
            dtmproduto.setValueAt(resultado, i, 3);
            
            }
    }

o que estaria errado nesse codigo?

3 Respostas

ViniGodoy

Basta retornar o calculo no getValueAt.

Pode postar seu TableModel?

W

ViniGodoy:
Basta retornar o calculo no getValueAt.

Pode postar seu TableModel?

o meu modelo é o seguinte:

DefaultTableModel dtmproduto = new DefaultTableModel(null, new String[]{“Produto”,“Valor Unitario”,“Quantidade”,“Valor Total”});

ViniGodoy

Bom, você precisa aprendar a fazer um TableModel direito, filho de AbstractTableModel.
O DefaultTableModel é só um exemplo, não deve ser usado na prática.

Nos links da minha assinatura, há tópicos que explicam como criar seu TableModel corretamente.

Ele não só vai resolver esse problema, como evitar diversos outros. Não se assuste, apesar de parecer complexo, é muito simples e organizado que usar o Default.

Criado 26 de outubro de 2010
Ultima resposta 27 de out. de 2010
Respostas 3
Participantes 2