use*_*624 5 java combobox object
我想在组合框中调用课程名称并打印选择课程名称的课程 ID 我该如何解决这个问题?
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] );
}
Run Code Online (Sandbox Code Playgroud)
通过不尝试将 a 转换String为 an Object[]。查看您正在使用的方法的返回值,并使用适当类型的变量来存储这些返回值。 JComboBox#getSelectedItem返回一个Object(在本例中显然是一个String),而不是一个数组(任何类型)。但在这一行中:
Object row[] = (Object[])combocourse.getSelectedItem();
Run Code Online (Sandbox Code Playgroud)
...您试图将其转换为Object[](数组Object),以便可以将其存储在Object[]. 你不能那样做。
看起来row应该只是Objector String, not Object[],当你使用它时,你应该直接使用它,而不是row[1]:
Object row = combocourse.getSelectedItem();
System.out.println("id"+row );
Run Code Online (Sandbox Code Playgroud)
或者
String row = (String)combocourse.getSelectedItem();
System.out.println("id"+row );
Run Code Online (Sandbox Code Playgroud)
在评论中你问:
我在组合框中调用了课程名称,但我应该将课程 ID 保存在我的数据库中。我怎样才能得到courseId?
我不知道JComboBox。从根本上讲,您需要存储包含两个值(ID 和名称)的内容,然后在获取所选项目时使用该内容。除非JComboBox有一些内置的功能,否则您可能需要一个简单的类来保存值并toString通过返回来实现courseName。隐约类似于:
class CourseItem {
private String courseName;
private String courseId; // Or int or whatever
CourseItem(String courseName,String courseId) {
this.courseName = courseName;
this.courseId = courseId;
}
public String getCourseName() {
return this.courseName;
}
public String getCourseId() {
return this.courseId;
}
public String toString() { // For display
return this.courseName;
}
}
Run Code Online (Sandbox Code Playgroud)
然后:
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(new CourseItem((String)row[0], (String)row[1]));
}
session.close();
}
private void combocourseActionPerformed(java.awt.event.ActionEvent evt) {
JComboBox combocourse = (JComboBox) evt.getSource();
CourseItem item = (CourseItem)combocourse.getSelectedItem();
System.out.println("id" + item.getCourseId());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61440 次 |
| 最近记录: |