Amigos, boa noite! Sou novo aqui no fórum e na linguagem Java. Estou desenvolvendo uma pequena aplicação e resolvi fazer um formulário único de pesquisa para as diversas tabelas.
O código está funcionando direitinho, ele faz a busca e retorna o resultado com base na tabela escolhida.
O problema é que o código está ficando muito grande (são mais ou menos 10 tabelas a serem consultadas) e com várias coisas repetidas.
Segue o código que mostra os dados em uma jTable. Este código está na minha ViewPesquisa. Este código é da pesquisa de apenas uma das tabelas. Multiplicar isso por 10 seria loucura.
Há alguma forma de otimizar?
//PREENCHE TABELA COM OS DADOS
public void preenchetabelafiltro (String text) {
DefaultTableModel tabela = (DefaultTableModel) jTableResultado.getModel();
cadclienteDAO pcdao = new cadclienteDAO();
tabela.setNumRows(0);
//PERCORRE A LISTA PARA IR PREENCHENDO
for(cadclienteBean bp: pcdao.filtrocliente(jTextFieldTexto.getText())) {
//FORMATA A DATA
Date minhaData = bp.getCliente_dt_nasc();
SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
String data_formatada = formato.format(minhaData);
tabela.addRow(new Object[]{
bp.getId_cliente(),
bp.getCliente_cpf(),
bp.getCliente_nome(),
data_formatada,
});
}
}
//FAZ O FILTRO A MEDIDA QUE USUÁRIO DIGITA O NOME
private void jTextFieldTextoKeyReleased(java.awt.event.KeyEvent evt) {
if(jLabelChamada.getText() == "Consulta cliente"){ //CONSULTA TABELA DE CLIENTES
Object[] columnName = {"Ident.","CPF","Nome","Data nasc."};
jTableResultado.setModel(new DefaultTableModel(columnName, 0) {
@Override
public boolean isCellEditable(int row, int column){
return false;
}
});
jTableResultado.getColumnModel().getColumn(0).setPreferredWidth(60);
jTableResultado.getColumnModel().getColumn(1).setPreferredWidth(100);
jTableResultado.getColumnModel().getColumn(2).setPreferredWidth(220);
jTableResultado.getColumnModel().getColumn(3).setPreferredWidth(80);
preenchetabelafiltro(jTextFieldTexto.getText());
}
}
Se alguém puder me dar uma ajuda, o que devo estudar, onde procurar ou como limpar e otimizar o código.
Muito obrigado!