我试图通过设置表的模型将行数据从一个表移动到另一个表。
当我尝试addRow()
DefaultTableModel
java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.Object;
应该是Vector
还是Object
?我真的需要施展吗?
这是我的代码。
int selectedRowIndex = subjectsListJtbl.getSelectedRow();
int selectedColIndex = subjectsListJtbl.getSelectedColumn();
DefaultTableModel curriculumSubjectsModel = (DefaultTableModel)curriculumSubjectsJtbl.getModel();
curriculumSubjectsModel.addRow((Object[])subjectsListJtbl.getValueAt(selectedRowIndex, selectedColIndex));
curriculumSubjectsJtbl.setModel(curriculumSubjectsModel);
另外,您是否可以提供一些提示,说明如何避免将行数据从一个表复制到另一个表?
答案 0 :(得分:2)
通过查看您的代码和您得到的错误,这似乎是错误的原因。
curriculumSubjectsModel.addRow((Object[])subjectsListJtbl.getValueAt(selectedRowIndex, selectedColIndex));
在这里,您从表中的单元格中获取值并将其转换为Object数组。无法将String对象或任何其他对象强制转换为数组对象。因此,要解决此问题,您可以创建具有所需值的Object数组,并将其传递给addRow()
方法。
curriculumSubjectsModel.addRow(new Object[]{subjectsListJtbl.getValueAt(selectedRowIndex, selectedColIndex)});
答案 1 :(得分:1)
您需要添加为数组
更改为
curriculumSubjectsModel.addRow((Object[])
{subjectsListJtbl.getValueAt(selectedRowIndex, selectedColIndex)});
或者当你暗示你可以创建一个矢量并添加它。