0

我不确定为什么我的代码不能正常运行,它可能很容易修复,但我想从页面获取输入,我收到一个错误,指出在这种情况下,选择的项目不能转换为对象选定的列

void delete() throws SQLException{
    int input = JOptionPane.showConfirmDialog(null, "Are you sure you want to delete?", "Delete", JOptionPane.YES_NO_OPTION);
    if (input == JOptionPane.YES_OPTION) {
        DVDItem user = (DVDItem)tableDVD.getModel().getValueAt(tableDVD.getSelectedRow(), tableDVD.getSelectedColumn());
        mc.deleteItem(user.getkey());
    }
    updateList();
}

我该如何制作它以便将其转换为 DVDItem 对象,然后通过访问其密钥来删除,谢谢

4

1 回答 1

2

我的意思是从逻辑上讲,将行的整个值传递给对象是有意义的,但我该怎么做呢?

DefaultTableModel 包含一行中每一列的单独对象。您不能只是神奇地创建 DVDItem。因此 getValueAt() 方法将返回给定行/列的对象。它返回的对象取决于您添加到模型中的值。

如果要将 DVDItem 对象添加到模型中,则需要创建自定义模型。查看 Bean 表模型。您可以按原样使用 BeanTableModel,也可以RowTableModel通过实现几个方法来扩展 BeanTableModel。这是你的选择。

于 2013-06-19T04:30:23.313 回答