Olá Galera, tô com um problema que não consigo encontrar a solução. É o seguinte: Criei o método abaixo para atualizar a jTable dos médicos cadastrado no meu sistema …
private void atualizaTabelaMedico() {
tbMedicos.getColumnModel().getColumn(0).setPreferredWidth(150); //Médico (Nome)
tbMedicos.getColumnModel().getColumn(1).setPreferredWidth(50); // CRM
tbMedicos.getColumnModel().getColumn(2).setPreferredWidth(50); // UF
while (tmMedicos.getRowCount() > 0) {
tmMedicos.removeRow(0);
}
String sql = "select medicos.nome as nome, mestre.crm as crm, mestre.uf as uf from mestre, medicos "
+ "where mestre.codmedico = medicos.codigo "
+ "and mestre.codcliente=" + tfCodPaciente.getText().trim() + " "
+ "order by mestre.id";
try {
con = new ConexaoBD();
con.conecta();
con.executeSQL(sql);
pacientes = new ArrayList();
PacienteBean pb;
while (con.rs.next()) {
pb = new PacienteBean();
pb.setNomemedico(con.rs.getString("nome"));
pb.setCrm(con.rs.getString("crm"));
pb.setUf(con.rs.getString("uf"));
pacientes.add(pb);
tmMedicos.addRow(new String[]{con.rs.getString("nome"),
con.rs.getString("crm"),
con.rs.getString("uf")});
}
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Nenhum Médico Cadastrado.");
}
}
… quando eu faço uma busca ou uma nova inclusão, o método funciona beleza, mas quando faço uma alteração no cadastro do médico, o meu retorno é exclusivamente o registro que foi alterado, e quando faço uma exclusão, o meu retorno é o primeiro registro da tabela. Esse método sempre é chamado na busca pelos médicos cadastrados, a cada nova inclusão, a cada alteração e a cada exclusão. Se eu retiro o trecho …
while (tmMedicos.getRowCount() > 0) {
tmMedicos.removeRow(0);
}
… os meus registros na jTable são Dublicados após Incluões, Alterações e Exclusões e se mantenho o trecho, dá o problema acima relatado. Já tentei colocar esse trecho em vários lugares no código, mas o erro insiste e continuar ocorrendo. Alguém tem alguma solução? Pois eu já estou sem idéias!