📄 abstractstudentreporttablemodel.java
字号:
package org.minjey.cjsjk.report;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Date;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Properties;import java.util.Vector;import javax.swing.table.AbstractTableModel;import org.minjey.cjsjk.model.Course;import org.minjey.cjsjk.model.Major;import org.minjey.cjsjk.model.Student;import org.minjey.cjsjk.util.PropertyDict;import org.minjey.cjsjk.util.PropertyLoader;public abstract class AbstractStudentReportTableModel extends AbstractTableModel { protected Vector<Student> students; protected Properties properties; protected HashMap<Integer, List<Course>> ocourses; protected Major major; protected Integer majorlength; public AbstractStudentReportTableModel(Major major, Vector<Student> students) { this.major = major; this.students = students; properties = PropertyLoader.loadSystemProperty(); ocourses = initOrder(major); majorlength = major.getMajorlength().getLength(); } private static final Class[] COLUMN_TYPES = { Student.class, String.class, //标题 String.class, String.class, String.class, String.class, String.class, String.class, String.class, Date.class, String.class, Date.class,//表头第一行 String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, //表头第二行 String.class, String.class }; private static final String[] COLUMN_NAMES ={ "student", "title", "text.name", "student.name", "text.sex", "student.sex", "text.age", "student.age", "text.intime", "student.intime", "text.outtime", "student.outtime", "text.major", "student.major", "text.majorlength", "major.majorlength", "text.majorrecord", "major.majorrecord", "text.bz", "student.bz", "text.course", "text.grade" }; public Object getValueAt(int rowIndex, int columnIndex) { Student student = students.elementAt(rowIndex); switch(columnIndex) { case 0: return student; case 1: return properties.get(PropertyDict.REPORT.STUDENT.TITLE); case 2: return properties.get(PropertyDict.REPORT.STUDENT.TNAME); case 3: return student.getName(); case 4: return properties.get(PropertyDict.REPORT.STUDENT.TSEX); case 5: return student.getSex(); case 6: return properties.get(PropertyDict.REPORT.STUDENT.TAGE); case 7: Integer age = student.getAge(); if(age == -1) { return " "; } else { return age; } case 8: return properties.get(PropertyDict.REPORT.STUDENT.TINTIME); case 9: return major.getIntime(); case 10: return properties.get(PropertyDict.REPORT.STUDENT.TOUTTIME); case 11: return major.getOuttime(); case 12: return properties.get(PropertyDict.REPORT.STUDENT.TMAJOR); case 13: return major.getName(); case 14: return properties.get(PropertyDict.REPORT.STUDENT.TMAJORLENGTH); case 15: return major.getMajorlength().toString(); case 16: return properties.get(PropertyDict.REPORT.STUDENT.TMAJORRECORD); case 17: return major.getMajorrecord().toString(); case 18: return properties.get(PropertyDict.REPORT.STUDENT.TBZ); case 19: return major.getBz(); case 20: return properties.get(PropertyDict.REPORT.STUDENT.TCOURSENAME); case 21: return properties.get(PropertyDict.REPORT.STUDENT.TGRADE); default: return null; } } public int getColumnCount () { return COLUMN_NAMES.length; } public int getRowCount() { return students.size(); } public Class getColumnClass(int columnIndex) { return COLUMN_TYPES[columnIndex]; } public String getColumnName(int columnIndex) { return COLUMN_NAMES[columnIndex]; } private HashMap<Integer, List<Course>> initOrder(Major major) { HashMap<Integer, List<Course>> ocourses = new HashMap<Integer, List<Course>>(); HashMap<Integer, Object> courses = major.getCourses(); Iterator it = courses.values().iterator(); while(it.hasNext()) { Course course = (Course)it.next(); Integer semester = course.getSemester(); List<Course> list = null; if(ocourses.containsKey(semester)) { list = ocourses.get(semester); list.add(course); } else { list = new ArrayList<Course>(); list.add(course); ocourses.put(semester, list); } } it = ocourses.values().iterator(); MyComparator comp = new MyComparator(); while(it.hasNext()) { List<Course> list = (List<Course>)it.next(); Collections.sort(list, comp); } return ocourses; } private class MyComparator implements Comparator{ private int compare(Course c1, Course c2){ if(c1.getCorder() < c2.getCorder()){ return -1; }else if(c1.getCorder() == c2.getCorder()){ return 0; }else{ return 1; } } public int compare(Object o1, Object o2) { return compare((Course) o1, (Course) o2); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -