2016-06-01 6 views
0

Ich versuche, die Zeilendaten von einer Tabelle in eine andere zu verschieben, indem Sie das Modell der Tabellen festlegen.Wie Verschieben von Zeilendaten von 1 JTable zu einem anderen?

Ich erhalte die folgende Fehlermeldung, wenn ich addRow() zum

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

DefaultTableModel versucht Sollte es Vector oder Object sein? Muss ich es wirklich umsetzen?

Hier ist mein Code.

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

Könnten Sie auch einige Tipps geben, wie ich das Hinzufügen von Duplikaten der Zeilendaten von einer Tabelle zur nächsten vermeiden kann?

Antwort

1

Sie müssen als Array

Änderung

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

hinzuzufügen, oder wie Sie angedeutet, ein Vektor erstellen kann und hinzufügen.

+0

Das ist genau das, was ich in Zeile 4 meines Codes gemacht habe, aber ich weiß nicht, warum ich den Fehler bekomme. Okay, lass mich den Vektor ausprobieren. – p3ace

+0

Nein, Zeile 4 Ihres Codes hat nicht die '{' und '}' –

+0

Oh mein Fehler. Es tut uns leid. Vielen Dank. Das hat mein Problem gelöst. Ich habe dieses Array übersehen. Ich schätze die Hilfe. – p3ace

1

Mit Blick auf Ihren Code und den Fehler, den Sie erhalten, scheint dies die Ursache für den Fehler zu sein.

Hier nehmen Sie einen Wert aus einer Zelle in Ihrer Tabelle und werfen ihn in ein Objekt-Array. Es ist nicht möglich, ein String-Objekt oder ein anderes Objekt in ein Array-Objekt zu konvertieren. Um dies zu beheben, können Sie ein Objekt-Array mit dem gewünschten Wert erstellen und an die Methode addRow() übergeben.

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