Olá pessoal,
Eu tenho uma tela onde tenho uma grid(JScrollPane) onde mostro os dados da tabela e conforme eu clico na linha, os campos são preenchidos no form.
Está funcionando sem problemas.
O que eu estou com problemas:
Quando eu faço uma inserção, atualização ou delete de um registro, não está dando o ‘refresh’ no grid.
No caso do update, se eu clico na linha novamente, o grid ‘se dá’ o refresh e atualiza os dados.
O código é bem extenso, eu não sei o que exatamente mostrar aqui, mas, posso colocar se necessário todo o código.
O que eu estou fazendo:
No frm, chamo uma classe Listener para mostrar os botões(salvar, incluir, etc).
Dentro dessa chamada ainda, eu tenho um método que inicializa o TableModel:
public void inicializaTableModel() {
IbgeDAO dao = new IbgeDAO();
List<Ibge> lista = dao.findAll();
ibgeTableModel = new IbgeTableModel(lista);
try {
frm.getTbListaIbge().setModel(ibgeTableModel);
} catch (Exception e) {
System.out.println("erro message = " + e.getMessage());
}
frm.getTbListaIbge().getSelectionModel().addListSelectionListener(this);
}
E tenho também um Override do método valueChanged:
@Override
public void valueChanged(ListSelectionEvent evento) {
Ibge ibge = ibgeTableModel.getLinhas().get(frm.getTbListaIbge().getSelectedRow());
doBancoParaForm(ibge);
}
Eu fazendo o debug(vcs não tem idéia, eu joguei SystemOut em tudo), quando eu abro a tela, não é passado pelo valueChanged.
Quando eu clico em uma linha do grid, é passado por ele, mas, não houve alteração nenhuma.
Agora quando eu faço uma alteração e salvo e ai dispara o método, no getMessage do Exception me vem como ‘-1’.
Não sei se é o motivo, mas, isso acontece porque, depois do método salvar, eu chamo o próprio método de inicializarTableModel, pensando que se eu chamo ‘ele mesmo’ já vem com a atualização.
Alguém poderia me ajudar a compreender onde estou fazendo errado e ajudar a solucionar este problema?
Aqui tem a imagem da tela para ajudar no exemplo:
Obrigado.
