2016-06-01 75 views
0

我試圖通過設置表格的模型將行數據從一個表移動到另一個表。如何將行數據從1個JTable移動到另一個?

我收到以下錯誤,當我試圖addRow()DefaultTableModel

java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.lang.Object; 

它應該是VectorObject?我真的需要投它嗎?

這是我的代碼。

int selectedRowIndex = subjectsListJtbl.getSelectedRow(); 
int selectedColIndex = subjectsListJtbl.getSelectedColumn(); 
DefaultTableModel curriculumSubjectsModel = (DefaultTableModel)curriculumSubjectsJtbl.getModel(); 
curriculumSubjectsModel.addRow((Object[])subjectsListJtbl.getValueAt(selectedRowIndex, selectedColIndex)); 
curriculumSubjectsJtbl.setModel(curriculumSubjectsModel); 

另外,你可以提供一些提示,說明如何避免將行數據從一個表複製到另一個表?

回答

1

你需要一個數組添加

變化

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

或暗示你,你可以創建一個向量和添加。

+0

這正是我在我的代碼的第4行做的,但我不知道爲什麼我得到錯誤。好吧,讓我試試這個矢量。 – p3ace

+0

不,你的代碼的第4行沒有'{'和'} –

+0

哦,我的錯誤。抱歉。謝謝。這解決了我的問題。我忽略了這個數組。我很感激幫助。 – p3ace

1

通過查看你的代碼和你得到的錯誤,這似乎是錯誤的原因。

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

這裏您從表格中的單元格獲取值並將其轉換爲Object數組。不可能將一個String對象或任何其他對象轉換爲一個數組對象。因此,要解決這個問題,您可以創建一個具有所需值的Object數組,並將其傳遞給addRow()方法。

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