1
I have a code snippet that works as follows:
protected void listaTodosRegistros(boolean bAberturaConsulta, JTable tbGrid, boolean bFiltraTodos) {
DefaultTableModel modelo = new DefaultTableModel();
modelo.addColumn("Código");
modelo.addColumn("Descrição");
CondicaoPagamentoDB dadosdb = new CondicaoPagamentoDB();
ArrayList<ModelCondicaoPagamento> dados;
if(bAberturaConsulta){
dados = dadosdb.getTodos();
} else {
dados = this.SQLConsultagetTodosCompleto();
}
int posicao = 1;
for (ModelCondicaoPagamento aux : dados) {
modelo.addRow(new Object[]{
aux.getCodigo(),
aux.getDescricao()
});
}
tbGrid.setModel(modelo);
}
protected ArrayList SQLConsultagetTodosCompleto() {
this.adicionaCondicao();
ArrayList listaDados = new ArrayList();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = ConexaoFirebird.getConexao();
stmt = conn.createStatement();
rs = stmt.executeQuery(this.SQL);
while (rs.next()) {
listaDados.add(this.getModelCarregado(rs));
}
} catch (SQLException erro) {
JOptionPane.showMessageDialog(null, "Erro no sql, SQLConsultagetTodosCompleto: \n" + erro.getMessage());
} finally {
ConexaoFirebird.closeAll(conn);
}
return listaDados;
}
protected ModelPadrao getModelCarregado(ResultSet rs) throws SQLException {
ModelCondicaoPagamento condicaopagamento = new ModelCondicaoPagamento();
condicaopagamento.setCodigo(rs.getInt("cd_cond"));
condicaopagamento.setDescricao(rs.getString("ds_cond"));
condicaopagamento.setCodigoUsuario(rs.getInt("cd_usuario"));
return condicaopagamento;
}
But I’m having difficulty changing the method "listTodosRegisters", because I want to make this method receive by parameter the name of the class and method and return the value, as follows:
for (ModelCondicaoPagamento aux : dados) {
ArrayList<Object> colunas = new ArrayList<>();
for (Iterator iterator = listaCampos.iterator(); iterator.hasNext(); ) {
Campo campo = (Campo) iterator.next();
colunas.add(campo.getValor());
}
modelo.addRow(new Object []{colunas});
}
tbGrid.setModel(modelo);