else if (source == jbl3) { initDelete(); } } private void initDelete() { // 检查是否有选中行 int selectedRow = jTable.getSelectedRow(); if (selectedRow == -1) { JOptionPane.showMessageDialog(null, "请先选择要删除的行"); return; } // 获取选中行的值 String valueAt = (String) tableModel.getValueAt(selectedRow, 0).toString(); if (valueAt == null) { JOptionPane.showMessageDialog(null, "无法获取选中行的值"); return; } conn = JDBCUtils.getConnection(); String sql = "DELETE from student where sid = ?"; try { pSmt = conn.prepareStatement(sql); pSmt.setString(1, valueAt); if (pSmt.executeUpdate() > 0) { tableModel.removeRow(selectedRow); initTable(); } else { JOptionPane.showMessageDialog(null, "删除失败"); } } catch (SQLException ex) { throw new RuntimeException(ex); } finally { JDBCUtils.close(pSmt, conn); } }
时间: 2024-02-10 12:09:54 浏览: 81
以上代码是一个删除JTable中选中行的方法,但是在获取选中行的值时存在问题。您可以尝试按照以下方法进行修改:
1. 将以下代码:
String valueAt = (String) tableModel.getValueAt(selectedRow, 0).toString();
修改为:
String valueAt = tableModel.getValueAt(selectedRow, 0).toString();
2. 您可以在获取选中行的值之前,先使用以下代码打印一下选中行的值:
System.out.println("选中行的值为:"+valueAt);
这样可以帮助您确定是否成功获取到了选中行的值。
希望这些建议可以帮助您解决问题,如果您有其他问题,请随时向我提出。
阅读全文