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

📄 addstudent.java

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

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import com.exam.db.bean.BanJi;
import com.exam.db.bean.Student;
import com.exam.db.dao.BanJiDao;
import com.exam.db.dao.StudentDao;
import com.exam.ui.SuperFrame;
import com.exam.ui.utils.NumberLenghtLimitedDmt;

public class AddStudent extends SuperFrame {

	private static final long serialVersionUID = 1L;
	JTextField txtStuID;
	JComboBox cboStuBanji;

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

	public void init() {
		this.setTitle("添加学生信息");
		this.setSize(600, 400);
		this.setResizable(false);
		this.setCenter();

		// 取底层面板
		Container ct = this.getContentPane();
		ct.setLayout(null);

		JLabel lblStuName = new JLabel("姓        名");
		lblStuName.setBounds(70, 30, 70, 20);
		ct.add(lblStuName);

		final JTextField txtStuName = new JTextField();
		txtStuName.setBounds(140, 30, 130, 20);
		ct.add(txtStuName);

		JLabel lblStuSex = new JLabel("性        别");
		lblStuSex.setBounds(320, 30, 70, 20);
		ct.add(lblStuSex);

		final JComboBox cboSex = new JComboBox();
		cboSex.setBounds(390, 30, 130, 20);
		cboSex.addItem("男");
		cboSex.addItem("女");
		ct.add(cboSex);

		JLabel lblStuCardID = new JLabel("身份证号");
		lblStuCardID.setBounds(70, 70, 70, 20);
		ct.add(lblStuCardID);

		final JTextField txtStuCardID = new JTextField();
		txtStuCardID.setBounds(140, 70, 130, 20);
		ct.add(txtStuCardID);

		JLabel lblStuBanji = new JLabel("所属班级");
		lblStuBanji.setBounds(320, 70, 70, 20);
		ct.add(lblStuBanji);

		cboStuBanji = new JComboBox();
		cboStuBanji.setBounds(390, 70, 130, 20);
		cboStuBanji.addItem("");
		cboStuBanji.setMaximumRowCount(5);
		ct.add(cboStuBanji);

		BanJiDao banJiDao = new BanJiDao();
		List<BanJi> listBanJi = new ArrayList<BanJi>();
		BanJi banJi = new BanJi();
		listBanJi = banJiDao.selectBanJiAll();
		for (int i = 0; i < listBanJi.size(); i++) {
			banJi = listBanJi.get(i);
			cboStuBanji.addItem(banJi.getBanJiID());
		}

		JLabel lblStuPhone = new JLabel("电话号码");
		lblStuPhone.setBounds(70, 110, 80, 20);
		ct.add(lblStuPhone);

		final JTextField txtStuPhone = new JTextField();
		txtStuPhone.setBounds(140, 110, 130, 20);
		ct.add(txtStuPhone);
		txtStuPhone.setDocument(new NumberLenghtLimitedDmt(12));

		JLabel lblStuID = new JLabel("学        号");
		lblStuID.setBounds(320, 110, 70, 20);
		ct.add(lblStuID);

		txtStuID = new JTextField();
		txtStuID.setEditable(false);
		txtStuID.setBounds(390, 110, 130, 20);
		ct.add(txtStuID);

		JLabel lblStuDate = new JLabel("出生日期");
		lblStuDate.setBounds(70, 150, 70, 20);
		ct.add(lblStuDate);

		final JTextField txtStuBirthday = new JTextField();
		txtStuBirthday.setEditable(false);
		txtStuBirthday.setBounds(140, 150, 130, 20);
		ct.add(txtStuBirthday);

		JLabel lblStuAge = new JLabel("年        龄");
		lblStuAge.setBounds(320, 150, 80, 20);
		ct.add(lblStuAge);

		final JTextField txtStuAge = new JTextField();
		txtStuAge.setBounds(390, 150, 130, 20);
		txtStuAge.setEditable(false);
		ct.add(txtStuAge);

		JLabel lblStuNation = new JLabel("民        族");
		lblStuNation.setBounds(70, 190, 70, 20);
		ct.add(lblStuNation);

		final JTextField txtNation = new JTextField("汉族");
		txtNation.setBounds(140, 190, 130, 20);
		ct.add(txtNation);

		final JLabel lblStuState = new JLabel("当前状态");
		lblStuState.setBounds(320, 190, 70, 20);
		ct.add(lblStuState);

		final JComboBox cboState = new JComboBox();
		cboState.setBounds(390, 190, 130, 20);
		cboState.addItem("在读");
		ct.add(cboState);

		JLabel lblStuAddr = new JLabel("家庭住址");
		lblStuAddr.setBounds(70, 245, 70, 20);
		ct.add(lblStuAddr);

		final JTextArea txaStuAddr = new JTextArea();
		txaStuAddr.setLineWrap(true);
		JScrollPane scpAddr = new JScrollPane(txaStuAddr);
		scpAddr.setBounds(140, 230, 130, 60);
		ct.add(scpAddr);

		JLabel lblStuRemark = new JLabel("备         注");
		lblStuRemark.setBounds(320, 245, 70, 20);
		ct.add(lblStuRemark);

		final JTextArea txaStuRemark = new JTextArea();
		txaStuRemark.setLineWrap(true);
		JScrollPane scpRemark = new JScrollPane(txaStuRemark);
		scpRemark.setBounds(390, 230, 130, 60);
		ct.add(scpRemark);

		JButton btnSave = new JButton("保      存");
		btnSave.setBounds(180, 320, 100, 25);
		ct.add(btnSave);

		JButton btnReset = new JButton("重      置");
		btnReset.setBounds(320, 320, 100, 25);
		ct.add(btnReset);

		cboStuBanji.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent arg0) {
				getStuNo();
			}
		});

		btnReset.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				txtStuName.setText("");// 姓名清空
				txtStuCardID.setText("");// 身份证号码清空
				txtStuID.setText("");// 学号清空
				txtStuBirthday.setText("");// 出生日期清空
				txtStuAge.setText("");// 年龄清空
				txtStuPhone.setText("");// 电话号码清空
				cboSex.setSelectedIndex(0); // 性别 第一个值设为默认值
				cboStuBanji.setSelectedIndex(0);// 所属班级清空
				cboState.setSelectedIndex(0);// 状态 第一个值设为默认值
				txtNation.setText("汉族");// 民族清空
				txaStuRemark.setText("");// 备注清空
				txaStuAddr.setText("");// 家庭住址清空
			}
		});

		txtStuCardID.addFocusListener(new FocusListener() {
			// 得到焦点方法
			public void focusGained(FocusEvent e) {
			}

			// 丢失焦点方法
			public void focusLost(FocusEvent arg0) {
				String str = txtStuCardID.getText().trim();
				char[] c = str.toCharArray();
				if (str.length() == 18) {
					for (int i = 0; i < 18; i++) {
						if (i == 0) {
							if (c[i] > '0' && c[i] <= '9') {
							} else {
								JOptionPane.showMessageDialog(null,
										"身份证号码有误!\n请重新输入!", "错误",
										JOptionPane.ERROR_MESSAGE);
								return;
							}
						} else if (i == 17) {
							if ((c[i] > '0' && c[i] <= '9') || c[i] == 'X'
									|| c[i] == 'x') {
							} else {
								JOptionPane.showMessageDialog(null,
										"身份证号码有误!\n请重新输入!", "错误",
										JOptionPane.ERROR_MESSAGE);
								return;
							}
						} else {// 除0和18位外的其他位数
							if (c[i] >= '0' && c[i] <= '9') {

							} else {
								JOptionPane.showMessageDialog(null,
										"身份证号码有误!\n请重新输入!", "错误",
										JOptionPane.ERROR_MESSAGE);
								return;
							}
						}
					}
				} else {
					JOptionPane.showMessageDialog(null, "身份证号码有误!\n请重新输入!",
							"错误", JOptionPane.ERROR_MESSAGE);
					return;
				}

				// 出生日期
				String stuYear = str.substring(6, 10);// 年
				String stuMouth = str.substring(10, 12);// 月
				String stuDay = str.substring(12, 14);// 日
				// 当前时间
				int year = Calendar.getInstance().get(Calendar.YEAR);// 年

				// 身份证时间
				int StuCardIDYear = Integer.parseInt(stuYear);// 年
				int StuCardIDMouth = Integer.parseInt(stuMouth);// 月
				int StuCardIDDay = Integer.parseInt(stuDay);// 日
				// 年龄;
				if ((StuCardIDMouth > 0 && StuCardIDMouth <= 12)
						&& (StuCardIDDay <= 31 && StuCardIDDay > 0)) {
					txtStuBirthday.setText(stuYear + stuMouth + stuDay);
					if ((year - StuCardIDYear) >= 15
							&& (year - StuCardIDYear) <= 50) {
						String age = Integer.toString(year - StuCardIDYear);
						txtStuAge.setText(age);
					} else {
						JOptionPane.showMessageDialog(null,
								"对不起!你的年龄不符合入学规定!\n请检查您输入的身份证号码!", "错误",
								JOptionPane.ERROR_MESSAGE);
						txtStuBirthday.setText("");
						txtStuCardID.setText("");
						return;
					}
				} else {
					JOptionPane.showMessageDialog(null, "身份证号码有误!\n请重新输入!",
							"错误", JOptionPane.ERROR_MESSAGE);
					txtStuBirthday.setText("");
					txtStuCardID.setText("");
					return;
				}
			}
		});

		btnSave.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				String stuID = "";
				String stuName = "";
				String stuSex = "";
				int stuAge = 0;
				String stuBirthday = "";
				String stuCardID = "";
				String stuNation = "";
				String stuPhone = "";
				String stuAddr = "";
				int stuState = 0;
				String banJiID = "";
				String remark = "";

				stuName = txtStuName.getText();
				if (stuName.equals("")) {
					JOptionPane.showMessageDialog(null, "姓名不可为空!请重新输入!");
					return;
				}
				stuCardID = txtStuCardID.getText();
				if (stuCardID.equals("")) {
					if (stuCardID.equals(stuCardID)) {
						JOptionPane.showMessageDialog(null,
								"身份证号码不可相同!\n请重新输入!");
						return;
					}
					JOptionPane.showMessageDialog(null, "身份证号码不可为空!\n请重新输入!");
					return;
				}

				stuPhone = txtStuPhone.getText();
				stuNation = txtNation.getText();
				if (stuNation.equals("")) {
					JOptionPane.showMessageDialog(null, "民族不可为空!\n请重新输入!");
					return;
				}
				stuAddr = txaStuAddr.getText();
				if (stuAddr.equals("")) {
					JOptionPane.showMessageDialog(null, "地址不可为空!\n请重新输入!");
					return;
				}
				stuID = txtStuID.getText();
				remark = txaStuRemark.getText();
				stuState = cboState.getSelectedIndex();
				stuAge = Integer.parseInt(txtStuAge.getText());
				stuSex = cboSex.getSelectedItem().toString().trim();
				banJiID = cboStuBanji.getSelectedItem().toString().trim();
				if (banJiID.equals("")) {
					JOptionPane.showMessageDialog(null, "所属班级不可为空!\n请重新输入!");
					return;
				}
				stuBirthday = txtStuBirthday.getText();

				Student student = new Student();
				student.setStuID(stuID);
				student.setStuName(stuName);
				student.setStuSex(stuSex);
				student.setStuAge(stuAge);
				student.setStuBirthday(stuBirthday);
				student.setStuCardID(stuCardID);
				student.setStuNation(stuNation);
				student.setStuPhone(stuPhone);
				student.setStuAddr(stuAddr);
				student.setStuState(stuState);
				student.setBanJiID(banJiID);
				student.setRemark(remark);
				int result = 0;
				StudentDao studentdao = new StudentDao();
				result = studentdao.insertStudent(student);
				if (result == 1) {
					JOptionPane.showMessageDialog(null, "保存成功!");
					dispose();
				} else {
					JOptionPane.showMessageDialog(null, "保存失败!");
					return;
				}
			}
		});
		txtStuPhone.addFocusListener(new FocusListener() {

			public void focusGained(FocusEvent arg0) {
			}

			public void focusLost(FocusEvent arg0) {

				int stuPhonelength = txtStuPhone.getText().length();
				if (stuPhonelength == 0 || stuPhonelength == 8
						|| stuPhonelength == 11 || stuPhonelength == 12) {

				} else {
					JOptionPane.showMessageDialog(null, "电话号码输入错误!");
					txtStuPhone.setText("");
					txtStuPhone.requestFocus();
				}
			}

		});
	}

	public void getStuNo() {
		StudentDao studentDao = new StudentDao();
		Student student = new Student();
		String banJiID = cboStuBanji.getSelectedItem().toString();
		if (banJiID == "") {
			txtStuID.setText("");
		} else {
			student = studentDao.selectStudentIDByBanJiID(banJiID);
			if (student == null) {
				BanJiDao banJiDao = new BanJiDao();
				BanJi banJi = new BanJi();
				banJi = banJiDao.selectBanJiByID(banJiID);
				if (banJi.getGrade().equals("S1")) {
					txtStuID.setText("S" + banJi.getBanJiDate().substring(2)
							+ 1 + "01");
				} else if (banJi.getGrade().equals("S2")) {
					txtStuID.setText("S" + banJi.getBanJiDate().substring(2)
							+ 2 + "01");
				} else {
					txtStuID.setText("S" + banJi.getBanJiDate().substring(2)
							+ 3 + "01");
				}
			} else {
				String no = student.getStuID();
				String first = no.substring(0, 8);
				String last = no.substring(8);
				int num = Integer.parseInt(last);
				if (num + 1 < 10) {
					txtStuID.setText(first + "0" + (num + 1));
				} else {
					txtStuID.setText(first + (num + 1));
				}
			}
		}
	}
}

⌨️ 快捷键说明

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