Java语言程序设计课程设计实训项目应用Java Swing GUI组件技术实现课程选课系统GU.docx
《Java语言程序设计课程设计实训项目应用Java Swing GUI组件技术实现课程选课系统GU.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计课程设计实训项目应用Java Swing GUI组件技术实现课程选课系统GU.docx(14页珍藏版)》请在冰豆网上搜索。
Java语言程序设计课程设计实训项目应用JavaSwingGUI组件技术实现课程选课系统GU
1.1应用JavaSwingGUI组件技术实现课程选课系统GUI窗口(第4部分)
1.1.1编程窗口内的确认和取消两个按钮的事件处理功能实现
1、编程取消按钮的事件响应功能实现
privatevoidcancelButtonActionPerformed(java.awt.event.ActionEventevt){
this.dispose();
}
2、编程确认按钮的事件响应方法的功能实现
privatevoidconfrimButtonActionPerformed(java.awt.event.ActionEventevt){
/**
*
(1)首先获得操作者所选的刚刚课程相关的信息
*/
StringselectedCourseName=(String)courseName.getSelectedItem();
StringselectedTeacherName=(String)teacherName.getSelectedItem();
StringselectedCourseTime=(String)courseTime.getSelectedItem();
StringselectedCourseCreit=(String)courseCreit.getSelectedItem();
/**
*
(2)将选课相关的信息包装到PO对象中
*/
/**
*将所输入的课程的相关信息保存到PO对象中
*/
CourseInfoPOoneCourseInfoPO=newCourseInfoPO();
oneCourseInfoPO.setCourseGrade(Integer.parseInt(selectedCourseCreit));
oneCourseInfoPO.setCourseName(selectedCourseName);
oneCourseInfoPO.setCourseTeacher(selectedTeacherName);
oneCourseInfoPO.setCourseTime(selectedCourseTime);
/**
*(3)将PO对象保存到数据库表中,从缓存中获得当前已经登录成功的学生信息PO对象
*/
StudentInfoPOcurrentLoginedStudentInfoPO=DataBase.loginedStudentInfoPO;
/**
*识别是否重复选课,如果目前为重复选课,则不再将当前所选择的课程添加到所选课程列表中,而是直接退出。
*/
if(currentLoginedStudentInfoPO.allSelectedCourseInfo.containsKey(selectedCourseName)){
System.out.println(selectedCourseName+"课程已经选择了,不允许重复选择该课程!
\n");
this.dispose();
return;
}
/**
*(4)将所选的课程的相关信息缓存在当前登录成功的学生信息PO对象中以缓存(已选课列表)
*/
currentLoginedStudentInfoPO.allSelectedCourseInfo.put(selectedCourseName,oneCourseInfoPO);
System.out.println("已经将所选的"+selectedCourseName+"课程添加到已选课程的列表中!
\n");
this.dispose();
}
1.1.2将选课窗口和课程管理功能类相互连接
1、修改CourseManageImple类中的addOneCourse方法
publicvoidaddOneCourse(){
/**
*识别选课者当前是否已经成功地登录本系统,否则将不允许选课
*/
if(DataBase.loginedStudentInfoPO==null){
System.out.println("你没有登录本系统,将不能进行选课!
\n");
return;
}
OnLineSelectCourseWindowoneOnLineSelectCourseWindow=newOnLineSelectCourseWindow();
oneOnLineSelectCourseWindow.setVisible(true);
}
2、测试现在的功能实现效果
执行主窗口,将弹出主窗口。
由于目前不能将注册和登录的信息永久保存,因此需要首先注册、登录,然后再进行选课。
在弹出的在线选课的窗口内进行选择:
选课完毕后,在控制台中将出现下面的结果信息:
1.1.3设计和实现退选课窗口的UI界面
1、新建退选课窗口的UI界面
类名称为RemoveCourseWindow,包名称为
将出现下面的界面
2、设置该窗口的主要属性
3、在该窗口内添加如下的组件
(1)改变文字为:
课程名称
(2)在课程名称列表中添加各个课程的名称
1)Java程序设计
2)C程序设计
3)C#程序设计
4)操作系统
5)数据结构
6)数据库原理
7)Oracle数据库
(3)改变课程组合框的对象名称为removeCourseCompBox。
4、在该窗口内添加两个按钮
改变按钮的提示文字
改变两个按钮的对象名称为confirmButton和cancelButton。
为两个按钮添加事件响应
1.1.4编程窗口内的确认和取消按钮的事件处理功能实现
1、取消按钮的事件
privatevoidcancelButtonActionPerformed(java.awt.event.ActionEventevt){
this.dispose();
}
2、确认按钮的事件处理
privatevoidconfirmButtonActionPerformed(java.awt.event.ActionEventevt){
/**
*
(1)获得学院退选的课程名称
*/
StringremoveCourseName=(String)removeCourseCompBox.getSelectedItem();
/**
*
(2)从缓存中获得当前已经登录成功的学生信息PO对象
*/
StudentInfoPOcurrentLoginedStudentInfoPO=DataBase.loginedStudentInfoPO;
/**
*识别当前所退选的课程是否已经在选课列表中存在,如果没有选择过该课程,
*则不能退选课程而是直接退出。
*/
if(!
currentLoginedStudentInfoPO.allSelectedCourseInfo.containsKey(removeCourseName)){
System.out.println(removeCourseName+"课程没有选择过,系统将不进行本次的退选操作!
\n");
this.dispose();
return;
}
/**
*(3)将所输入的课程名称的相关课程信息从登录成功的学生信息PO中删除掉
*/
currentLoginedStudentInfoPO.allSelectedCourseInfo.remove(removeCourseName);
System.out.println("已经将所选的"+removeCourseName+"课程从已选课程的列表中删除了!
\n");
this.dispose();
}
3、执行退选课窗口以测试现在的结果
1.1.5将退选课窗口与课程管理的业务功能类相互连接
1、修改CourseManageImple类中的removeOneCourse方法
publicvoidremoveOneCourse(){
/**
*识别选课者当前是否已经成功地登录本系统,否则将不允许退选课
*/
if(DataBase.loginedStudentInfoPO==null){
System.out.println("你没有登录本系统,将不能进行退选课!
\n");
return;
}
RemoveCourseWindowoneRemoveCourseWindow=newRemoveCourseWindow();
oneRemoveCourseWindow.setVisible(true);
}
2、测试现在的功能
执行主窗口,将弹出主窗口。
由于目前不能将注册和登录的信息永久保存,因此需要首先注册、登录,然后再进行选课,最后才能退选某个课程——该课程必须是他已经选过的课程名称。
在弹出的退线选课的窗口内进行选择:
退选课完毕后,在控制台中将出现下面的结果信息:
如果退选没有选择的课程,则在控制台中出现下面的错误信息: