我的数据库中有两个表作为学期表和课程表。学期表中有semesterId,courseId,courseName和Sdepartment(部门名称)。课程表有courseId和courseName。我有两个组合框我的jframe。第一个是选择一个部门。第二个是选择课程。我想选择选定部门的课程。当我选择一个部门时,如何在组合框中调用课程名称?我认为我应该使用addActionlistener和actionperformed但我不知道我如何使用此代码在这里我的代码;
public void coursename(){
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
//Query query= session.createQuery("select a.courseName,e.semesterId from Semester e inner join e.course as a");
Query query= session.createQuery("FROM Senior.entity.Semester S ");
//for (Iterator it = query.iterate(); it.hasNext();) {
//Object row[] = (Object[]) it.next();
//combocourse.addItem(new CourseItem((String)row[0], (int)row[1]));
//}
List <Semester>re= query.list();
if (re.size() > 0){
Iterator iterate= re.iterator();
final Semester resultAccount= (Semester)iterate.next();
combocourse.removeAllItems();
for(Semester inv:re){
combocourse.addItem(new CourseItem(inv.getSemesterId(),inv.getSCourse()));
}
}
session.close();
}
public void depart(){
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query query= session.createQuery("FROM Senior.entity.Semester f ");
List <Semester>results= query.list();
if (results.size() > 0){
Iterator iterate= results.iterator();
final Semester resultAccount= (Semester)iterate.next();
combodepart.removeAllItems();
for(Semester inv:results){
combodepart.addItem(new DepartItem(inv.getSemesterId(),inv.getSDepartment()));
// combodepart.addActionListener(combocourse);
/*
@Override
public void actionPerformed(ActionEvent e) {
JComboBox combocourse;
combocourse = (JComboBox) e.getSource();
// Object selected = combocourse.getSelectedItem();
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
Query query= session.createQuery("FROM Senior.entity.Semester f ");
List <Semester>results= query.list();
if (results.size() > 0){
Iterator iterate= results.iterator();
final Semester resultAccount= (Semester)iterate.next();
combodepart.removeAllItems();
for(Semester inv:results){
combodepart.addItem(new DepartItem(inv.getSemesterId(),inv.getSDepartment()));
}
});
*/
}
}
session.close();
}
答案 0 :(得分:0)
你需要做这样的事情:
public class ComboBoxDemo ... implements ActionListener {
. . .
departments.addActionListener(this);
. . .
public void actionPerformed(ActionEvent e) {
JComboBox cb = (JComboBox)e.getSource();
String department= (String)cb.getSelectedItem();
updateCourse(department);
}
. . .
}
您可以在此方法中获取所选项目,因此您可以填充课程组合框。
Here is the link让你入门