Alguém pode me explicar o porquê de minha JTable não atualizar?

Bem, tenho uma JTable que exibe os componentes de um banco de dados. Fiz um código para que após uma alteração no banco, ela atualize em tempo de execução, porém, por algum motivo, isso não acontece. SEGUE O CÓDIGO:

public void novaConsulta() {
    try {
        c.rs.first();
        do {
            dados.add(new Object[]{c.rs.getInt("ID"),
                c.rs.getString("NOME_DO_ESTADO"),
                c.rs.getString("SIGLA_DO_ESTADO")});
        } while (c.rs.next());
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao preencher o ArrayList."
                + "\nERRO: " + ex.getMessage());
    }
}

Evento de clique do JButton:

private void salvarActionPerformed(java.awt.event.ActionEvent evt) {                                       
    String i = "update ESTADOS set NOME_DO_ESTADO =?, "
            + "SIGLA_DO_ESTADO =?"
            + " where ID =?";
    int a = Integer.parseInt(id.getText().trim());
    try {
        PreparedStatement pst = c.conn.prepareStatement(i);
        pst.setString(1, nomeEstado.getText());
        pst.setString(2, siglaEstado.getText());
        pst.setInt(3, a);
        
        novaConsulta();
        pst.execute();
        pst.close();
    } catch (SQLException ex) {
        throw new RuntimeException(ex);

    }
}

Estou usando o AbstractTableModel.

Falta adicionar o Objeto ESTADO nos dados de seu abstractTableModel, ficaria maus ou menos assim:

....
PreparedStatement pst = c.conn.prepareStatement(i);
    pst.setString(1, nomeEstado.getText());
    pst.setString(2, siglaEstado.getText());
    pst.setInt(3, a);
    Estado estado = new Estado(nomeEstado.getText(),siglaEstado.getText()); // cria o ESTADO
    TableModelEstado table =(TableModelEstado) jTable1.getModel(); // recupera a variavel tableModel, se tiver como variavel lobal ignore isso
    table.add(estado); // adiciona o estado a tabela e dentro do metodo add DEVE POSSUIR O METODO FIREDATACHANGED ou algo assim...
    novaConsulta();
    pst.execute();
    pst.close();
 ....

Bom dia Morais,

Após as alterações nos registros(UPDATE), você consegue certificar que as alterações realmente ocorreram?

Uma coisa que achei estranho no seu método salvarActionPerformed se refere a chamada novaConsulta();

Posso estar enganado, mas caso esse seja o método que listará os dados para exibição na tela, a chamada dele deveria ser feita após a execução do “Update”, exemplo:

PreparedStatement pst = c.conn.prepareStatement(i);
pst.setString(1, nomeEstado.getText());
pst.setString(2, siglaEstado.getText());
pst.setInt(3, a);

pst.execute();
pst.close();
novaConsulta();

Ok!

Eu adicionei, só não está nesse método, coloquei como variável global.

Q confusão, se n deu certo é pq vc esta montando os métodos do AbstractTableModel da forma incorreta.

Ao invés de ficar implementando sem conhecer os métodos, as classes, o conceito e atributos; Estude AbstractTableModel, aposto q vai conseguir desenvolver seu sistema muito mais rápido do q esperar que outras pessoas respondam suas questões.

Cara pf, leia TUDO deste artigo, com calma e clareza.

Cara utiliza o método fireTableChanged() do AbstractTableModel, isso deve resolver.

obs: chame o método depois que você mudar os dados.