📄 gradecontrol.java
字号:
package GradeManagement;
import GradeManagement.model.CollegeStudent;
import GradeManagement.model.GradeModel;
import GradeManagement.model.Student;
import GradeManagement.model.StudentFactory;
import GradeManagement.model.Undergraduate;
import GradeManagement.ui.CollegeStudentDialog;
import GradeManagement.ui.UndergraduateDialog;
import java.awt.Container;
import javax.swing.*;
import GradeManagement.util.SystemConstants;
public class GradeControl {
private JFrame owner;
private GradeModel gradeModel;
public GradeControl(JFrame mainWindow, GradeModel gradeModel) {
owner = mainWindow;
this.gradeModel = gradeModel;
}
public boolean setType(String stuType) {
if( gradeModel.size() > 0 ) return false;
for(int i = 0; i < SystemConstants.STUDENTTYPE.length; i++)
if( stuType.equalsIgnoreCase(SystemConstants.STUDENTTYPE[i])){
gradeModel.setType(i);
break;
}
return true;
} // 方法setType结束
public String getType() {
return(SystemConstants.STUDENTTYPE[gradeModel.getType()]);
}
//增加学生
public void addStudent(Container contaier) {
if(gradeModel.getType() == SystemConstants.COLLEGESTUDENT) {
CollegeStudentDialog studentDialog = new CollegeStudentDialog(owner,
"录入专科生信息");
studentDialog.setVisible(true);
if (!studentDialog.isCanceled()) {
gradeModel.addStudent(studentDialog.getStudent());
}
studentDialog.dispose();
} else if(gradeModel.getType() ==SystemConstants.UNDERGRADUATE ) {
UndergraduateDialog informationDialog = new UndergraduateDialog(owner,
"录入本科生信息");
informationDialog.setVisible(true);
if (!informationDialog.isCanceled()) {
gradeModel.addStudent(informationDialog.getStudent());
}
informationDialog.dispose();
}
} // 方法addStudent结束
public void modifyStudent(Container contaier) {
if(gradeModel.size()==0) {
JOptionPane.showMessageDialog(null, "学生成绩为空,请先录入",
"请先录入", JOptionPane.ERROR_MESSAGE);
//JOptionPane.showConfirmDialog(null,"学生成绩为空,请先录入");
return;
}
String studentID = JOptionPane.showInputDialog("输入想要修改的学生学号:");
if(studentID != null || studentID.trim().length() != 0) {
Student temp = StudentFactory.newStudent(gradeModel.getType());
temp.setId(studentID.trim());
Object object = gradeModel.findById(temp);
if( object != null ) {
if ( gradeModel.getType() == SystemConstants.COLLEGESTUDENT){
CollegeStudentDialog studentdialog = new CollegeStudentDialog(owner,
"修改专科生信息");
studentdialog.display((CollegeStudent)object);
studentdialog.setVisible(true);
if (!studentdialog.isCanceled()) {
gradeModel.deleteStudent( (Student) object);
gradeModel.addStudent(studentdialog.getStudent());
}
studentdialog.dispose();
} else if ( gradeModel.getType() == SystemConstants.UNDERGRADUATE){
UndergraduateDialog informationDialog = new UndergraduateDialog(owner,
"修改本科生信息");
informationDialog.display( (Undergraduate) object);
informationDialog.setVisible(true);
if (!informationDialog.isCanceled()) {
gradeModel.deleteStudent( (Student) object);
gradeModel.addStudent(informationDialog.getStudent());
}
informationDialog.dispose();
}
} else {
JOptionPane.showConfirmDialog(null, "该学生不存在");
return;
} // end of if(object != null) else
} else {
JOptionPane.showConfirmDialog(null, "请输入学号");
}
}// 方法modifyStudent结束
//删除学生
public void deleteStudent() {
if(gradeModel.size()==0) {
JOptionPane.showMessageDialog(null, "学生成绩簿为空,请先录入",
"请先录入", JOptionPane.ERROR_MESSAGE);
// JOptionPane.showConfirmDialog(null,"学生成绩簿为空,请先录入");
return;
}
String studentID = JOptionPane.showInputDialog("输入想要删除的学生学号:");
if(studentID != null || studentID.trim().length() != 0) {
Student temp = StudentFactory.newStudent(gradeModel.getType()) ;
temp.setId(studentID.trim());
if(gradeModel.deleteStudent(temp)!=null)
JOptionPane.showConfirmDialog(null,"您已经成功删除学号为" + studentID + "的学生");
else
JOptionPane.showConfirmDialog(null,"不存在该学生,删除无法进行");
} else {
JOptionPane.showConfirmDialog(null, "请输入学号,否则删除无法进行");
}
} //方法deleteStudent结束
// 多线程排序
public void sort() { //多线程排序
if (gradeModel.size()==0) {
JOptionPane.showMessageDialog(null, "学生成绩簿为空,请先录入",
"请先录入", JOptionPane.ERROR_MESSAGE);
return;
}
new Thread(new Runnable() {
public void run() {
gradeModel.sort();
}
} ,"Sort" ).start();
} // 方法sort结束
public void compute(boolean computFlag) {
if(gradeModel.size()==0) {
JOptionPane.showMessageDialog(null, "学生成绩簿为空,请先录入",
"请先录入", JOptionPane.ERROR_MESSAGE);
// JOptionPane.showConfirmDialog(null,"学生成绩为空,请先录入");
return;
}
gradeModel.setComputFlag(computFlag);
} // 方法compute结束
} // 类GradeControl结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -