Como atualizar meu JTable após exclusão [Java SE]?

1 resposta
java
Moraisdelimahigor

Tenho um JTable que exibe dados de um banco de dados. Quero atualiza-lo em tempo de execução após excluir uma linha. Para preenche-lo, estou usando uma classe que estende de AbstractTableModel.

Segue o código da exclusão através de um JButton:

private void excluirActionPerformed(java.awt.event.ActionEvent evt) {                                        
    int o = Integer.parseInt(excluido.getText().trim());
    String i = "delete from ESTADOS where ID = ?";
    try {
        PreparedStatement pst = c.conn.prepareStatement(i);
        pst.setInt(1, o);
        int x = pst.executeUpdate();
        JOptionPane.showMessageDialog(null, "DEU CERTO");
    } catch (SQLException ex) {
        Logger.getLogger(Teste.class.getName()).log(Level.SEVERE, null, ex);
        JOptionPane.showMessageDialog(null, ex.getMessage());
    }
}

Eu já:
-Tentei chamar o método que preenche minha JTable
-Utilizei o método repaint.
-Utilizei o método fireTableStructureChanged.
-Utilizei o método fireTableDataChanged.

1 Resposta

drsmachado
Você tem duas opções:

1 - Exclui o registro no banco de dados, limpa a lista/array que contém os dados apresentados na JTable e realiza nova pesquisa, populando novamente a tabela (isso custará mais processamento, mas garante que os dados apresentados sejam sempre os que realmente estão no banco de dados);

2 - Criar um método que identifica a linha sendo excluída, remove o item correspondente da lista/array com os objetos que preenchem a JTable e, então, efetua o delete no banco (desta maneira, processa menos, mas corre o risco de um rollback tornar a apresentação dos dados incorreta);

Ah, sim. Após alterar a lista/array que comporta os itens da JTable, você pode chamar o método fireTableDataChanged mesmo.
Criado 24 de outubro de 2016
Ultima resposta 24 de out. de 2016
Respostas 1
Participantes 2