⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abstractstudentreporttablemodel.java

📁 一个可以存储和打印成绩单的系统
💻 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 + -