Rumah > Java > javaTutorial > Mengapa JTable Saya Tidak Kemas Kini Selepas Memadam Baris daripada Pangkalan Data?

Mengapa JTable Saya Tidak Kemas Kini Selepas Memadam Baris daripada Pangkalan Data?

Barbara Streisand
Lepaskan: 2024-11-16 11:48:03
asal
676 orang telah melayarinya

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

Isu paparan GUI AbstractTableModel

Masalah yang anda hadapi adalah berkaitan dengan cara anda mengemas kini model jadual apabila baris dipadamkan. Pada masa ini, pendengar tindakan butang deleteSelectedRow anda mengemas kini data dalam pangkalan data tetapi tidak mencetuskan model jadual untuk memuat semula. Inilah sebabnya mengapa jadual masih menunjukkan baris yang dipadamkan.

Bagaimana untuk menyelesaikan isu?

Untuk menyelesaikan isu ini, anda perlu memberitahu model jadual secara eksplisit bahawa data telah berubah. Anda boleh melakukan ini dengan memanggil kaedah fireTableRowsDeleted() antara muka TableModel apabila baris dipadamkan daripada pangkalan data. Ini akan mencetuskan model jadual untuk mengemas kini struktur data dalamannya dan menyegarkan semula jadual.

Berikut ialah versi terkini kod anda yang merangkumi perubahan yang diperlukan:

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());
        }

    }

});
Salin selepas log masuk

Dengan memanggil fireTableRowsDeleted() , anda mengarahkan model jadual untuk mengalih keluar baris yang ditentukan daripada struktur data dalamannya dan mengemas kini jadual dengan sewajarnya. Ini akan memastikan bahawa GUI mencerminkan perubahan yang dibuat pada pangkalan data asas.

Atas ialah kandungan terperinci Mengapa JTable Saya Tidak Kemas Kini Selepas Memadam Baris daripada Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan