如何将行数据从 1 个 JTable 移动到另一个?

How to move row data from 1 JTable to another?

我试图通过设置 table 的模型将行数据从一个 table 移动到另一个。

当我尝试 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);

此外,您能否提供一些提示,说明如何避免将行数据从一个 table 添加到另一个?

您需要添加为数组

改为

curriculumSubjectsModel.addRow((Object[])
    {subjectsListJtbl.getValueAt(selectedRowIndex, selectedColIndex)});

或者正如您所暗示的那样,您可以创建一个矢量并添加它。

通过查看您的代码和您遇到的错误,这似乎是错误的原因。

curriculumSubjectsModel.addRow((Object[])subjectsListJtbl.getValueAt(selectedRowIndex, selectedColIndex));

在这里,您从 table 中的一个单元格中获取一个值,并将其转换为一个对象数组。不可能将 String 对象或任何其他对象转换为数组对象。因此,要解决此问题,您可以创建一个具有所需值的对象数组并将其传递给 addRow() 方法。

curriculumSubjectsModel.addRow(new Object[]{subjectsListJtbl.getValueAt(selectedRowIndex, selectedColIndex)});