2016-06-01 13 views
0

テーブルのモデルを設定して、あるテーブルから別のテーブルに行データを移動しようとしています。私はそれがVectorまたはObjectであるべきDefaultTableModel行データを1 JTableから別のJTableに移動するには?

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

addRow()にしようとしたとき

私は次のエラーを取得していますか?私は本当にそれをキャストする必要がありますか?

ここに私のコードです。

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)); 

ここでは、テーブル内のセルから値を取り出し、オブジェクト配列にキャストしています。 Stringオブジェクトやその他のオブジェクトを配列オブジェクトにキャストすることはできません。したがって、これを修正するには、目的の値を持つObject配列を作成し、addRow()メソッドに渡すことができます。

関連する問題