Jovem, pára de usar DefaultTableModel e crie o seu próprio TableModel para renderizar coleções.
Aí você não vai mais precisar ficar fazendo esses laços desnecessários chamado o addRow do DefaultTableModel.
O DefaultTableModel só é útil quando você tem dados estáticos na tela e não quando seus dados são obtidos dinamicamente.
Faça o seguinte:
Dentro da sua tela, crie uma inner-class para ser o modelo da sua JTable:
private class TableModelVendasClientes extends AbstractTableModel {
String[] colunas = new String[] { "ID", "NOME", "DATA VENDA", "VALOR LIQUIDO" };
// este método é chamado pela JTable pra obter o número de colunas
@Override
public int getColumnCount() {
return colunas.length;
}
// este método é chamado pela JTable pra obter o nome da coluna informada
@Override
public String getColumnName(int col) {
return colunas[col];
}
// este método é chamado pela JTable pra obter o número de linhas
@Override
public int getRowCount() {
return listaModelVendasClientes == null ? 0 : listaModelVendasClientes.size();
}
// este método é chamado pela JTable pra obter o o valor a ser apresentado na célula informada
@Override
public Object getValueAt(int lin, int col) {
if (listaModelVendasClientes != null && lin > -1 && lin < listaModelVendasClientes.size()) {
ModelVendas modelVendas = listaModelVendasClientes.get(lin).getModelVendas();
switch (col) {
case 0:
return modelVendas.getIdVendas();
case 1:
return modelVendas.getCliNome();
case 2:
return modelVendas.getVenDataVenda();
case 3:
return modelVendas.getVenValorLiquido(); // aqui, antes de retornar o valor, você pode formatar como quiser
}
}
return null;
}
}
Altere a instanciação da sua JTable para ficar dessa forma:
jtVendas = new JTable(new TableModelVendasClientes());
E finalmente altere o seu método carregarVendas() dessa forma:
private void carregarVendas() {
listaModelVendasClientes = controllerVendasCliente.getListaVendasClienteControler();
((TableModelVendasClientes) jtVendas.getModel()).fireTableDataChanged();
jtfVotalVendas.setText(CalculaTotalTabela().replace(",", "."));
}