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

📄 selectscore.java

📁 accp s1毕业项目 考试管理系统
💻 JAVA
字号:
package com.exam.ui.teacher;

import java.awt.Color;
import java.awt.Component;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.JTableHeader;

import com.exam.db.bean.BanJi;
import com.exam.db.bean.Course;
import com.exam.db.bean.ExamDB;
import com.exam.db.dao.BanJiDao;
import com.exam.db.dao.CourseDao;
import com.exam.db.dao.ExamDBDao;
import com.exam.db.dao.StudentDao;
import com.exam.ui.SuperFrame;

public class SelectScore extends SuperFrame {
	private static final long serialVersionUID = 1L;
	private JTable tblInfo;
	private int currentPage = 1;
	private int totalPage = 1;
	private JLabel lblPage;
	private JButton btnFirstPage;
	private JButton btnPreviousPage;
	private JButton btnNextPage;
	private JButton btnLastPage;
	private List<ExamDB> listExamDB;

	public SelectScore() {
		try {
			init();
			this.setVisible(true);
			this.setResizable(false);
			this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void init() {
		this.setTitle("成绩查询");
		this.setSize(600, 450);
		this.setCenter();

		JPanel pnlTotal = new JPanel();
		this.getContentPane().add(pnlTotal);
		pnlTotal.setLayout(null);

		JLabel lblBanJi = new JLabel("班级");
		lblBanJi.setBounds(50, 20, 30, 25);
		pnlTotal.add(lblBanJi);

		final JComboBox cboBanJi = new JComboBox();
		cboBanJi.setBounds(80, 20, 120, 25);
		cboBanJi.addItem("");
		pnlTotal.add(cboBanJi);

		BanJiDao banJiDao = new BanJiDao();
		List<BanJi> listBanJi = new ArrayList<BanJi>();
		listBanJi = banJiDao.selectBanJiAll();
		for (BanJi banJi : listBanJi) {
			cboBanJi.addItem(banJi.getBanJiID());
		}

		JLabel lblCouName = new JLabel("科目");
		lblCouName.setBounds(250, 20, 30, 25);
		pnlTotal.add(lblCouName);

		final JComboBox cboCouName = new JComboBox();
		cboCouName.setBounds(280, 20, 120, 25);
		cboCouName.addItem("");
		pnlTotal.add(cboCouName);

		List<Course> listCourse = new ArrayList<Course>();
		CourseDao courseDao = new CourseDao();
		listCourse = courseDao.selectAllCourse();
		for (int i = 0; i < listCourse.size(); i++) {
			cboCouName.addItem(listCourse.get(i).getGrade() + "-"
					+ listCourse.get(i).getCouName());
		}

		JButton btnFind = new JButton("查询");
		btnFind.setBounds(460, 20, 60, 25);
		btnFind.setMargin(new Insets(0, 0, 0, 0));
		pnlTotal.add(btnFind);

		JPanel pnlInfo = new JPanel();
		pnlInfo.setBounds(30, 50, 530, 350);
		pnlInfo.setBorder(BorderFactory.createTitledBorder("成绩信息"));
		pnlTotal.add(pnlInfo);
		pnlInfo.setLayout(null);

		Object[][] cells = new String[12][5];
		Object[] col = { "姓名", "成绩", "最高分", "最低分", "平均分" };
		tblInfo = new JTable(cells, col) {
			private static final long serialVersionUID = 1L;

			public boolean isCellEditable(int row, int col) {
				return false;
			}
		};
		JTableHeader tbhInfo = tblInfo.getTableHeader();
		tbhInfo.setBounds(20, 25, 490, 25);
		tbhInfo.setReorderingAllowed(false);
		tblInfo.setSelectionMode(0);
		tblInfo.setRowHeight(20);
		tblInfo.setBounds(20, 50, 490, 240);
		pnlInfo.add(tbhInfo);
		pnlInfo.add(tblInfo);

		DefaultTableCellRenderer dtcrStudent = new DefaultTableCellRenderer() {
			private static final long serialVersionUID = 1L;

			public Component getTableCellRendererComponent(JTable table,
					Object value, boolean isSelected, boolean hasFocus,
					int row, int column) {
				if (row % 2 != 0) {
					setBackground(new Color(206, 231, 255));
				} else {
					setBackground(new Color(255, 255, 255));
				}
				setHorizontalAlignment(SwingConstants.CENTER);
				return super.getTableCellRendererComponent(table, value,
						isSelected, hasFocus, row, column);
			}
		};
		for (int i = 0; i < tblInfo.getColumnCount(); i++) {
			tblInfo.getColumn(col[i]).setCellRenderer(dtcrStudent);
		}

		lblPage = new JLabel("第 " + currentPage + " / " + totalPage + " 页");
		btnFirstPage = new JButton("第一页");
		btnPreviousPage = new JButton("上一页");
		btnNextPage = new JButton("下一页");
		btnLastPage = new JButton("最末页");

		lblPage.setBounds(50, 305, 80, 25);
		btnFirstPage.setBounds(150, 305, 60, 25);
		btnFirstPage.setMargin(new Insets(0, 0, 0, 0));
		btnPreviousPage.setBounds(230, 305, 60, 25);
		btnPreviousPage.setMargin(new Insets(0, 0, 0, 0));
		btnNextPage.setBounds(310, 305, 60, 25);
		btnNextPage.setMargin(new Insets(0, 0, 0, 0));
		btnLastPage.setBounds(390, 305, 60, 25);
		btnLastPage.setMargin(new Insets(0, 0, 0, 0));
		btnFirstPage.setEnabled(false);
		btnPreviousPage.setEnabled(false);
		btnNextPage.setEnabled(false);
		btnLastPage.setEnabled(false);
		pnlInfo.add(lblPage);
		pnlInfo.add(btnFirstPage);
		pnlInfo.add(btnPreviousPage);
		pnlInfo.add(btnNextPage);
		pnlInfo.add(btnLastPage);

		btnFirstPage.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				currentPage = 1;
				showTblInfo(currentPage);
			}
		});
		btnPreviousPage.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				currentPage--;
				if (currentPage < 1) {
					currentPage = 1;
				}
				showTblInfo(currentPage);
			}
		});
		btnNextPage.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				currentPage++;
				if (currentPage == totalPage) {
					currentPage = totalPage;
				}
				showTblInfo(currentPage);
			}
		});
		btnLastPage.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				currentPage = totalPage;
				showTblInfo(currentPage);
			}
		});
		btnFind.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				currentPage = 1;
				String banJiID = cboBanJi.getSelectedItem().toString();
				String str = cboCouName.getSelectedItem().toString();
				if (banJiID.equals("") && str.equals("")) {
					JOptionPane.showMessageDialog(null, "请选择科目和班级!");
					return;
				}
				BanJiDao banJiDao = new BanJiDao();
				BanJi banJi = banJiDao.selectBanJiByID(banJiID);
				String stuID;
				String grade = str.substring(0, 2);
				if (banJi.getGrade().equals("S1")) {
					stuID = "S" + banJi.getBanJiDate().substring(2) + "1%";
				} else if (banJi.getGrade().equals("S2")) {
					stuID = "S" + banJi.getBanJiDate().substring(2) + "2%";
				} else {
					stuID = "S" + banJi.getBanJiDate().substring(2) + "3%";
				}
				String couName = str.substring(3);
				CourseDao courseDao = new CourseDao();
				Course course = courseDao.selectCourseByNameAndGrade(couName,
						grade);
				int couID = course.getCouID();
				ExamDBDao examDBDao = new ExamDBDao();
				listExamDB = examDBDao.selectAvrScoreByStuIDAndCouID(stuID,
						couID);
				showInfo();
			}
		});
	}

	private void showInfo() {
		showTblInfo(currentPage);
	}

	private void showTblInfo(int num) {		
		if (listExamDB.size() % 12 == 0) {
			if (listExamDB.size() == 0) {
				totalPage = 1;
			} else {
				totalPage = listExamDB.size() / 12;
			}
		} else {
			totalPage = listExamDB.size() / 12 + 1;
		}
		lblPage.setText("第 " + num + " / " + totalPage + " 页");
		if (num == 1) {
			btnFirstPage.setEnabled(false);
			btnPreviousPage.setEnabled(false);
		} else {
			btnFirstPage.setEnabled(true);
			btnPreviousPage.setEnabled(true);
		}
		if (totalPage == num) {
			btnNextPage.setEnabled(false);
			btnLastPage.setEnabled(false);
		} else {
			btnNextPage.setEnabled(true);
			btnLastPage.setEnabled(true);
		}
		for (int i = 0; i < 12; i++) {
			for (int j = 0; j < 5; j++) {
				tblInfo.setValueAt("", i, j);
			}
		}
		
		if(listExamDB.size()==0){
			JOptionPane.showMessageDialog(null, "该班还没有参加此科目的考试!");
			return;
		}

		float sum = 0;
		int max = 0;
		int min = 0;
		for (int j = 0; j < listExamDB.size(); j++) {
			int score = listExamDB.get(j).getScore();
			sum += score;
			if (j == 0) {
				max = score;
				min = score;
			}
			if (max < score) {
				max = score;
			}
			if (min > score) {
				min = score;
			}
		}
		float avg = sum / listExamDB.size();

		int first = (num - 1) * 12;
		for (int i = first; i < listExamDB.size(); i++) {
			StudentDao studentDao = new StudentDao();
			String stuName = studentDao.selectStudentByStuID(
					listExamDB.get(i).getStuID()).getStuName();
			tblInfo.setValueAt(stuName, i % 12, 0);
			tblInfo.setValueAt(listExamDB.get(i).getScore() + "", i % 12, 1);
			tblInfo.setValueAt(max + "", i % 12, 2);
			tblInfo.setValueAt(min + "", i % 12, 3);
			tblInfo.setValueAt(avg + "", i % 12, 4);
			if (i % 12 == 11) {
				break;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -