Diz ele que tenho que melhorar meu código. Ele diz que meu código não está legível 
Na parte de preenchimento de tabela, ele diz que tá confuso, porém não sei se foi porque eu que fiz o código, mas não vejo confusão nenhuma kkkkk vejam esta parte do meu código:
Método da classe DAO que faz a query no BD e retorna uma list:
public List read() {
PreparedStatement state;
ResultSet rs;
try {
state = ConnectionFactory.getConnection().prepareStatement(SQLBUSCAR);
rs = state.executeQuery();
while (rs.next()) {
ContasModel contasModel = new ContasModel();
contasModel.setConta(rs.getInt(1));
contasModel.setNome(rs.getString(2));
contasModel.setSaldo(rs.getDouble(3));
contasModel.setLimite(rs.getDouble(4));
contasBD.add(contasModel); // contasBD eh uma ArrayList que criei no início da classe para ser preenchida aqui neste método. Mas estou pensando que se eu criá-la aqui dentro, ela será limpa toda vez, daí ele já "atualizaria" minha tabela, visto que sempre que eh feita a query ele seria repreenchido.
}
return contasBD;
} catch (SQLException ex) {
System.err.println("Erro: " + ex);
}
return null;
}
Método do Controller que executa a query e renderiza a tabela:
public void mostraDados() {
ViewTable tabela = new ViewTable();
ContaDAO dao = new ContaDAO();
tabela.jTableView.setModel(new TableModel(dao.read())); // Visto que o método read eh um List, já passo ele como parâmetro para o TableModel.
tabela.setVisible(true);
tabela.setLocationRelativeTo(null);
}
Classe interna que extende AbstractTableModel: (Conforme o Ricardo já me falou em outro tópico)
private class TableModel extends AbstractTableModel {
private List<ContasModel> contas;
private final String[] colunas = {"Conta", "Titular", "Saldo Inicial", "Limite"};
public TableModel(List<ContasModel> contas){
this.contas = contas;
}
@Override
public int getRowCount(){
return contas.size();
}
@Override
public int getColumnCount(){
return colunas.length;
}
@Override
public Object getValueAt(int lin, int col){
switch (col) {
case 0:
return this.contas.get(lin).getConta();
case 1:
return this.contas.get(lin).getNome();
case 2:
return this.contas.get(lin).getSaldo();
case 3:
return this.contas.get(lin).getLimite();
default:
return this.contas.get(lin);
}
}
public List<ContasModel> getDataSet() {
return contas;
}
@Override
public String getColumnName(int col) {
return colunas[col];
}
public void clearRow() {
contas.clear();
fireTableDataChanged();
}
}
Não vejo confusão neste código, mas pode ser que eu esteja louco. (Lembrando que esta é apenas a parte referente a query no BD e renderização de tabela. O resto do programa está ok mas eh nessa parte que ele diz que está confuso.)