📄 addstudent.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 + -