I'm trying to develop a Java sales control program, but I'm having a problem scheduling Jtable's balance.
As you can see in the image below, the balance is being updated per line. However, since I declare the initial balance equal to 0, I need it to add up with the total value of the first line to update the balance of the first line, then take the balance of the first line and add up to the total value of the second line and update the balance of the second line (to be a cumulative balance). How do I do this?
ClassSale
publicclassVenda{privateStringpontoVenda;privateStringcliente;privateStringproduto;privateStringtipo;privateintquantidade;privatefloatvalor;publicfloatvalorTotal;publicdoublesaldo=0;publicStringgetPontoVenda(){returnpontoVenda;}publicvoidsetPontoVenda(StringpontoVenda){this.pontoVenda=pontoVenda;}publicStringgetCliente(){returncliente;}publicvoidsetCliente(Stringcliente){this.cliente=cliente;}publicStringgetProduto(){returnproduto;}publicvoidsetProduto(Stringproduto){this.produto=produto;}publicStringgetTipo(){returntipo;}publicvoidsetTipo(Stringtipo){this.tipo=tipo;}publicintgetQuantidade(){returnquantidade;}publicvoidsetQuantidade(intquantidade){this.quantidade=quantidade;}publicfloatgetValor(){returnvalor;}publicvoidsetValor(floatvalor){this.valor=valor;}publicfloatgetValorTotal(){returnvalorTotal;}publicvoidsetValorTotal(floatvalorTotal){this.valorTotal=valor*quantidade;}publicdoublegetSaldo(){returnsaldo;}publicvoidsetSaldo(doublesaldo){this.saldo=saldo+valorTotal;}}
publicclassProdutoTableModelextendsAbstractTableModel{privateList<Venda>dados=newArrayList<>();privateString[]colunas={"Ponto de Venda", "Cliente", "Produto", "Tipo",
"Quantidade" ,"Valor(unid.)", "Valor Total", "Saldo"};
@Override
public String getColumnName(int column){
return colunas[column];
}
@Override
public int getRowCount() {
return dados.size();
}
@Override
public int getColumnCount() {
return colunas.length;
}
@Override
public Object getValueAt(int linha, int coluna) {
switch (coluna){
case 0:
return dados.get(linha).getPontoVenda();
case 1:
return dados.get(linha).getCliente();
case 2:
return dados.get(linha).getProduto();
case 3:
return dados.get(linha).getTipo();
case 4:
return dados.get(linha).getQuantidade();
case 5:
return dados.get(linha).getValor();
case 6:
return dados.get(linha).getValorTotal();
case 7:
return dados.get(linha).getSaldo();
}
return null;
}
private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Venda p = new Venda();
p.setPontoVenda(itemPonto.getSelectedItem().toString());
p.setCliente(itemCliente.getSelectedItem().toString());
p.setProduto(itemProduto.getSelectedItem().toString());
p.setTipo(itemTipo.getSelectedItem().toString());
p.setQuantidade(Integer.parseInt(txtQuantidade.getText()));
p.setValor(Float.parseFloat(txtValor.getText()));
p.setValorTotal(p.valorTotal);
p.setSaldo(p.saldo);
tableModel.addRow(p);