java - 编辑 JTable 时 vector 类类型发生变化

标签 java swing vector jtable

我有一个包含三列的 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 cannot be cast to com.abc.xyz.model.PropertyItem

对于未编辑数据的所有其他行,此转换完成时不会出现任何错误,但对于已编辑的行,则会导致此错误。

知道我可以在此时或之前将字符串转换回 PropertyItem 吗?

最佳答案

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

关于java - 编辑 JTable 时 vector 类类型发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19652413/

相关文章:

c++ - 如何将 std::vector<std::vector<int>> 从 C++ 返回到 C++/CLI?

java - 产量法困惑

Java Swing - 从 CLick 获取 X,Y

java - 需要帮助理解 ConvolveOp 内核类中使用的矩阵

c++ - 添加 vector

c++ - 如何对2D vector i,j施加条件

java - 页面输出500错误有XSS风险吗?

java - 为什么这个 @ComponentScan 在我的 spring boot 应用程序中不起作用?

java - 将 iText 5.5.6 添加到带有 gradle 异常的 Android 项目

java - 退出 Java 应用程序之前的清理