Estou tendo um problema com carregar uma tabela de clientes, e não estou usando DefaultTableModel, estou puxando uma classe de AbstractTableModel. Acredito ser erro na lógica dela e não estou sabendo resolver, a tabela simplesmente não carrega meu banco. Obrigado
A classe que possui a jTable:
public class telaClientes extends javax.swing.JFrame {
ConnectionFactory con = new ConnectionFactory();
int contador = 0; //para setar ID +=1
ClientesTable modeloTabela = new ClientesTable(); //puxar modelo da outra classe
public telaClientes() {
initComponents();
txtIDcli.setEditable(false);
jTClientes.setModel(modeloTabela);
carregarTabela();
}
private void carregarTabela() {
ClientesTable modelo = new ClientesTable();
jTClientes.setModel(modelo);
Dao dao = new Dao();
for (Clientes c: dao.lerClientes()){
c.getID();
c.getNome();
c.getRg();
c.getCpf();
modelo.addRow(c);
}
}`
A classe do modelo da tabela AbstractTableModel
public class ClientesTable extends AbstractTableModel{
private List<Clientes> dados = new ArrayList<>();
private String[] colunas = {"ID", "NOME", "RG", "CPF"};
@Override
public String getColumnName (int column){
return colunas[column];
}
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).getID();
case 1:
return dados.get(linha).getNome();
case 2:
return dados.get(linha).getRg();
case 3:
return dados.get(linha).getCpf();
}
return null;
}
E o método da classe Dao:
public List <Clientes> lerClientes() {
List<Clientes> clientes = new ArrayList<>();
PreparedStatement textoSql;
ResultSet rs;
String sql = "select * from clientes;";
try {
textoSql = conex.getConexao().prepareStatement(sql);
rs = textoSql.executeQuery();
while (rs.next()) {
Clientes cliente = new Clientes();
cliente.setID(rs.getInt("id"));
cliente.setNome(rs.getString("nome"));
cliente.setCpf(rs.getLong("rg"));
cliente.setRg(rs.getLong("cpf"));
clientes.add(cliente);
}
} catch (Exception ErroSQL) {
System.out.println("Erro ao carregar tabela !");
}
return clientes;
}