bom dia pessoal, estou inserindo uma nova linha em minha tabela, mas o ID ele não atualiza, fica 0 até que reinicie a aplicação.... se alguém souber o que posso fazer, segue minha tabela:
public class ClienteTableModel extends AbstractTableModel implements TableModelListener{
private List<Cliente> clientes;
private List<String> colunas;
private ClienteDAO dao;
// Construtores
public ClienteTableModel() {
}
public ClienteTableModel(ClienteDAO dao) throws SQLException {
this.dao = dao;
this.clientes = dao.retornaTodas();
colunas = Arrays.asList("Código", "CPF", "Nome");
this.addTableModelListener(this);
}
// Métodos Geters
public List<String> getColunas() {
return colunas;
}
// Retorna o numero de colunas no modelo
public int getColumnCount() {
return colunas.size();
}
// Retorna o numero de linhas existentes no modelo
public int getRowCount() {
return clientes.size();
}
public String getColumnName(int i) {
return colunas.get(i);
}
// Obtem o valor na linha e coluna
public Object getValueAt(int r, int c) {
Cliente cliente = clientes.get(r);
switch (c) {
case 0:
return cliente.getId();
case 1:
return cliente.getCpf();
case 2:
return cliente.getNome();
}
return null;
}
public void setValueAt(Object aValue, int r, int c){
Cliente cliente = clientes.get(r);
switch (c) {
case 0:
cliente.setId((Long) aValue);
break;
case 1:
cliente.setCpf((String) aValue);
break;
case 2:
cliente.setNome((String) aValue);
break;
default:
throw new IndexOutOfBoundsException("não existe");
}
fireTableCellUpdated(r, c);
}
public void addRow(Cliente cliente){
clientes.add(cliente);
fireTableDataChanged();
}
@Override
public void tableChanged(TableModelEvent e) {
int i = e.getFirstRow();
Cliente cliente = clientes.get(i);
System.out.println(i);
dao.atualiza(cliente);
}
}