java.lang.String nicht umgewandelt werden [Ljava.lang.Objekt;
Möchte ich nennen natürlich die Namen in die combobox ein und drucken Sie die Kurs-Id, die ausgewählt coursename Wie kann ich dieses problem lösen?
public void coursename(){
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query query= session.createQuery("select a.courseName,a.courseId from Semester e inner join e.course as a");
for (Iterator it = query.iterate(); it.hasNext();) {
Object row[] = (Object[]) it.next();
combocourse.addItem(row[0]);
}
session.close();
}
private void combocourseActionPerformed(java.awt.event.ActionEvent evt) {
JComboBox combocourse = (JComboBox)evt.getSource();
Object row[] = (Object[])combocourse.getSelectedItem();
System.out.println("id"+row[1] );
}
Können Sie klären Ihre Frage? Genau das, was Fehler sind Sie immer und auf welche Zeile in deinem code?
String kann nicht gewirkt werden, um Array-Objekt...@ die Zeile???
versuchen Sie, ändern Sie
String kann nicht gewirkt werden, um Array-Objekt...@ die Zeile???
versuchen Sie, ändern Sie
getSelectedItem
zu getSelectedObjects
dies gibt Ihnen eine Liste der ausgewählten Objekte
InformationsquelleAutor user3627624 | 2014-05-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Indem Sie nicht versuchen zu werfen
String
zu einemObject[]
. Betrachten Sie den Rückgabewert der Methoden, die Sie verwenden, und die Verwendung von Variablen eingegeben passend zum speichern dieser Werte zurück.JComboBox#getSelectedItem
gibt einObject
(in diesem Fall offenbar eineString
), nicht ein array (jeglicher Art). Aber in dieser Zeile:...Sie versuchen zu casten, dass es eine
Object[]
(array vonObject
), so dass Sie können speichern Sie in einemObject[]
. Das kannst du nicht tun.Scheint es, wie
row
sollte nurObject
oderString
, nichtObject[]
, und dass, wenn Sie es verwenden, sollten Sie es einfach verwenden, direkt, nicht alsrow[1]
:Oder
In einem Kommentar fragte Sie:
Ich weiß nicht
JComboBox
. Grundsätzlich müssen Sie etwas lagern, enthält beide Werte (ID und name), und verwenden Sie dann, dass etwas, wenn Sie das ausgewählte Element. Es sei dennJComboBox
hat einige Funktionen, die für diese gebaut, müssen Sie möglicherweise eine einfache Klasse, die hält, dass die Werte und implementierttoString
durch RücksendungcourseName
. Etwas vage, wie:Dann:
Object row[] = (Object[])it.next();
auch... 🙂Naja, ich weiß nicht, die Abfrage der Infrastruktur verwendet, also für alles, was ich wissen
it.next()
ein array zurückgeben (vielleicht ein array mit den Werten für die Zeile iteriert). Aber ja, in der Regel nur, die OP sollte einen Blick auf welche Methoden zurück und verwenden Sie eine entsprechend typisierte variable zum speichern dieser Werte zurückgeben.Dank ich rief coursename in der combobox, aber ich sollte Sie retten die Kurs-id in meiner Datenbank.Wie bekomme ich courseId?
Ich habe ein wenig zu der Antwort darüber.
InformationsquelleAutor T.J. Crowder
versuchen:
Du nur einzelne Objekte hinzuzufügen, die in der combocourse, keine arrays von Objekten.
InformationsquelleAutor Tim B
combocourse.getSelectedItem();
in Ihrem Fall gibtString
und string nicht umgewandelt werden array von Objekten. Wenn Sie möchten, um die Liste der Objekte, die Sie verwendengetSelectedObjects()
InformationsquelleAutor user902383