Rumah >Java >javaTutorial >Mengapa JTable Saya Tidak Kemas Kini Selepas Memadam Baris daripada Pangkalan Data?
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.
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()); } } });
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!