Home > Java > javaTutorial > Why Doesn't My JTable Update After Deleting a Row from the Database?

Why Doesn't My JTable Update After Deleting a Row from the Database?

Barbara Streisand
Release: 2024-11-16 11:48:03
Original
659 people have browsed it

Why Doesn't My JTable Update After Deleting a Row from the Database?

AbstractTableModel GUI display issue

The problem you are facing is related to how you are updating the table model when a row is deleted. Currently, your deleteSelectedRow button action listener updates the data in the database but doesn't trigger the table model to refresh. This is why the table still shows the deleted row.

How to resolve the issue?

To resolve this issue, you need to explicitly notify the table model that the data has changed. You can do this by calling the fireTableRowsDeleted() method of the TableModel interface whenever a row is deleted from the database. This will trigger the table model to update its internal data structures and refresh the table.

Here's an updated version of your code that includes the necessary change:

delete.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {

        int rowIndex = table.getSelectedRow();

        Object columnIndexValue = table.getModel().getValueAt(rowIndex, 0);

        String columnName = table.getModel().getColumnName(0);

        String query = "delete from world.city" + " where " + columnName + "=" + columnIndexValue;

        try {

            PreparedStatement pre = conn.prepareStatement(query);

            pre.executeUpdate();

            JOptionPane.showMessageDialog(null, "Row Deleted Successfully");
            
            // Notify the table model that the data has changed
            ((TableModel) table.getModel()).fireTableRowsDeleted(rowIndex, rowIndex);

        } catch (Exception e1) {
            JOptionPane.showMessageDialog(null, e1.getMessage());
        }

    }

});
Copy after login

By calling fireTableRowsDeleted(), you are instructing the table model to remove the specified row from its internal data structures and update the table accordingly. This will ensure that the GUI reflects the changes made to the underlying database.

The above is the detailed content of Why Doesn't My JTable Update After Deleting a Row from the Database?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template