我有一个JTable,其中包含三列:

字符串,PropertyItem(自定义类),字符串

PropertyItem在表中显示为字符串,但类型为PropertyItem。这是表的示例行:

价值面膜|格式限制|值掩码规则子类型

该表的数据是使用Vector获取的:

List<Vector> displayedData = table_propertyDetails.getDataMatrix();


并像这样遍历表数据:

for(Vector row : displayedData) { ... }


现在,使用row.get(index)函数以类型转换将列0和2的字符串转换为String来获取列数据。对于PropertyItem列,它的完成方式是(PropertyItem)row.get(index)。因此,到目前为止一切都很好,并且在正常的行列表/获取中没有问题。

现在,当编辑该表的第二列(PropertyItem)时,它变成一个字符串,并且(PropertyItem)row.get(index)返回该行的错误:


  java.lang.String不能强制转换为
  com.abc.xyz.model.PropertyItem


对于所有其他未编辑数据的行,此转换没有任何错误,但对于已编辑的行,将导致此错误。

知道我现在或之前可以将String转换回PropertyItem的方法吗?

最佳答案

似乎您使用DefaultTableModel,在这种情况下,我建议您编写自己的TableCellEditor来编辑自定义列。在实现中,您可以根据需要编辑对象。

08-05 01:35