Java基础知识学完,在此将学生管理系统进行封装分类管理,在与数据库操作中,添加、删除、修改、查询还存在一些问题,不能及时的显示到JLable上面,显示所有学生可以显示到上面,若有需求的请自己修改下,有做的不足的地方希望给点建议,谢谢!!
下面就是代码:
在package com.sc.java.managers;放了两个程序:
主要的界面窗口:
package com.sc.java.managers;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import com.sc.java.managers.db.TeacherDB;
import com.sc.java.managers.table.StudentTable;
public class ManagerGuiDemo extends JFrame {
Container container;
JButton loginBtn;
JButton registBtn;
JButton resetbtn;
JLabel accountLable;
JLabel passWordLable;
JLabel imageLable;
JTextField accountTxt;
JPasswordField passWordTxt;
JPanel btnJPanel;
JPanel imageJpanel;
JPanel gridJpanel;
TeacherDB db = TeacherDB.getInstance();
// 创建主窗口
public ManagerGuiDemo() {
super("学生管理系统教师登录界面");
this.setBounds(500, 300, 350, 400);
container = this.getContentPane();
container.setLayout(new FlowLayout());
container.setBackground(Color.white);//更改容器背景颜色
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void init() {
// 初化控件
ImageIcon image = new ImageIcon("pic//xuesheng.png");
loginBtn = new JButton("登录");
registBtn = new JButton("注册");
resetbtn = new JButton("重置");
accountLable = new JLabel("账号名:");
passWordLable = new JLabel("密 码:");
imageLable = new JLabel(image);
accountTxt = new JTextField(10);
passWordTxt = new JPasswordField(10);
gridJpanel = new JPanel();
btnJPanel = new JPanel();
imageJpanel = new JPanel();
// 添加控件到容器
imageJpanel.setLayout(new FlowLayout());
imageJpanel.add(imageLable);
gridJpanel.setLayout(new GridLayout(3, 1));
gridJpanel.add(accountLable);
gridJpanel.add(accountTxt);
gridJpanel.add(passWordLable);
gridJpanel.add(passWordTxt);
btnJPanel.add(loginBtn);
btnJPanel.add(registBtn);
btnJPanel.add(resetbtn);
container.add(imageJpanel);
container.add(gridJpanel);
container.add(btnJPanel);
// 注册按钮事件
registBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ManagerGuiDemo.this.setVisible(false);
new Register().initTeacher();
}
});
// 登录按钮事件
loginBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String account = accountTxt.getText();
String passWord = passWordTxt.getText();
if (account.equals("") || passWord.equals("")) {
JOptionPane.showMessageDialog(null, "登录信息不能为空!");
return;
}
boolean flag = db.selectTeacherLogin(account, passWord);
if (flag) {
setVisible(false);
new StudentTable().init();
} else {
JOptionPane.showMessageDialog(null, "登录名或密码错误!");
accountTxt.setText("");
passWordTxt.setText("");
}
}
});
// 重置事件
resetbtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
accountTxt.setText("");
passWordTxt.setText("");
return;
}
});
this.setVisible(true);
}
public static void main(String[] args) {
new ManagerGuiDemo().init();
}
}
登陆界面:
package com.sc.java.managers;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import com.sc.java.managers.bean.TeacherBean;
import com.sc.java.managers.db.TeacherDB;
public class Register extends JFrame implements ActionListener {
Container container;
JList list;
String array[];
JButton confirmBtn;
JLabel nameLable;
JLabel accountLable;
JLabel passWordLable;
JLabel imageLable;
JTextField nameTxt;
JTextField accountTxt;
JPasswordField passWordTxt;
JPanel btnJPanel;
JPanel imageJpanel;
JPanel gridJpanel;
TeacherDB db = TeacherDB.getInstance();
public Register() {
super("教师注册界面");
this.setBounds(500, 300, 300, 400);
container = this.getContentPane();
container.setLayout(new FlowLayout());
this.setResizable(false);
}
public void initTeacher() {
ImageIcon image = new ImageIcon("pic//jiaoshi.png");
confirmBtn = new JButton("确定");
nameLable = new JLabel("姓 名:");
accountLable = new JLabel("账号名:");
passWordLable = new JLabel("密 码:");
imageLable = new JLabel(image);
nameTxt = new JTextField(10);
accountTxt = new JTextField(10);
passWordTxt = new JPasswordField(10);
btnJPanel = new JPanel();
gridJpanel = new JPanel();
imageJpanel = new JPanel();
imageJpanel.setLayout(new FlowLayout());
imageJpanel.add(imageLable);
gridJpanel.setLayout(new GridLayout(4, 3));
gridJpanel.add(nameLable);
gridJpanel.add(nameTxt);
gridJpanel.add(accountLable);
gridJpanel.add(accountTxt);
gridJpanel.add(passWordLable);
gridJpanel.add(passWordTxt);
btnJPanel.add(confirmBtn);
container.add(imageJpanel);
container.add(gridJpanel);
container.add(btnJPanel);
confirmBtn.addActionListener(this);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source == confirmBtn) {
String name = nameTxt.getText();
String account = accountTxt.getText();
String passWord = passWordTxt.getText();
if (name.equals("") || account.equals("") || passWord.equals("")) {
JOptionPane.showMessageDialog(null, "注册信息不能为空!");
return;
}
boolean flag = db.selectTeacherAccount(account);
if (flag) {
JOptionPane.showMessageDialog(null, "此用户已存在!请确认后重新注册!");
nameTxt.setText("");
accountTxt.setText("");
passWordTxt.setText("");
return;
} else {
TeacherBean teacher = new TeacherBean(name, account, passWord);
db.addTeacher(teacher);
new ManagerGuiDemo().init();
}
}
}
// 检测时用的
public static void main(String[] args) {
new Register().initTeacher();
}
}
教师类和学生类Bean类包如下:
教师Bean:
package com.sc.java.managers.bean;
public class TeacherBean {
private String name;// 创建教师姓名
private String account;// 创建登陆账号
private String passWord;// 创建登陆密码
public TeacherBean() {
}
public TeacherBean(String name, String account, String passWord) {
this.name = name;
this.account = account;
this.passWord = passWord;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
}
学生Bean:
package com.sc.java.managers.bean;
public class StudentBean {
private String name;// 创建学生姓名
private String number;// 创建学生学号
private String age;// 创建学生年龄
private String sex;// 创建学生性别
public StudentBean() {
}
public StudentBean(String name, String number, String age, String sex) {
this.name = name;
this.number = number;
this.age = age;
this.sex = sex;
}
public StudentBean(String number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
数据库连接分类如下:
建立数据库连接:
package com.sc.java.managers.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionDB {
// 驱动程序名
private String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名mydata
private String url = "jdbc:mysql://localhost:3306/stumanager";
// MySQL配置时的用户名
private String user = "root";
// MySQL配置时的密码
private String password = "a123";
// 加载驱动
protected ConnectionDB() {
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 建立数据库连接
public Connection getConnection() {
Connection connect = null;
try {
connect = (Connection) DriverManager.getConnection(url, user,
password);
} catch (SQLException e) {
e.printStackTrace();
}
return connect;
}
// 关闭连接
public void freeConnection(Connection con) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
连接教师表:
package com.sc.java.managers.db;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.sc.java.managers.bean.TeacherBean;
public class TeacherDB extends ConnectionDB{
// 检查驱动是否已连接,若已连接就不再执行
private static TeacherDB USS = null;
private Connection connect = null;
public static TeacherDB getInstance() {
if (USS == null) {
USS = new TeacherDB();
}
return USS;
}
//创建数据库
public void createDatabase(){
Statement s;
try {
s = (Statement) connect.createStatement();
// 创建数据库
String str0 = "create database stumanagers CHARSET=utf8";
s.execute(str0);
} catch (SQLException e) {
e.printStackTrace();
}
}
//创建教师表
public void createDataTablesTeacher(){
try {
Statement s= (Statement) connect.createStatement();
// 连接数据库
String setDate = "use stumanagers";
s.execute(setDate);
// 添加教师数据表
String tch = "CREATE TABLE teacher( "
+ "id int(2) NOT NULL AUTO_INCREMENT, "
+ "name varchar(3) DEFAULT NULL,account varchar(10) DEFAULT NULL,"
+ "password varchar(10) DEFAULT NULL,PRIMARY KEY (id)"
+ ") ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8";
s.execute(tch);
} catch (SQLException e) {
e.printStackTrace();
}
}
// 添加教师账号信息到数据库
public void addTeacher(TeacherBean teacher) {
Connection con = null;
PreparedStatement ps = null;
String sql = "insert into teacher(name,account,passWord)values(?,?,?)";
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, teacher.getName());
ps.setString(2, teacher.getAccount());
ps.setString(3, teacher.getPassWord());
ps.executeUpdate();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (ps != null)
ps.close();
} catch (SQLException sqle) {
}
if (con != null)
freeConnection(con);
}
}
// 判断教师注册的账号是否存在
public boolean selectTeacherAccount(String account) {
Connection con = null;
PreparedStatement ps = null;
String sql = "select * from teacher where account=?";
boolean fals = false;
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, account);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
fals = true;
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (ps != null)
ps.close();
} catch (SQLException sqle) {
}
if (con != null)
freeConnection(con);
}
return fals;
}
// 判断教师登录的账号密码是否正确
public boolean selectTeacherLogin(String account, String passWord) {
Connection con = null;
PreparedStatement ps = null;
String sql = "select * from teacher where (account,passWord)=(?,?)";
boolean fals = false;
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, account);
ps.setString(2, passWord);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
fals = true;
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (ps != null)
ps.close();
} catch (SQLException sqle) {
}
if (con != null)
freeConnection(con);
}
return fals;
}
}
连接学生表:
package com.sc.java.managers.db;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.sc.java.managers.bean.StudentBean;
public class StudentDB extends ConnectionDB {
// 检查驱动是否已连接,若已连接就不再执行
private static StudentDB USS = null;
public static StudentDB getInstance() {
if (USS == null) {
USS = new StudentDB();
}
return USS;
}
// 添加学生对象到数据库
public void addStudent(StudentBean student) {
Connection con = null;
PreparedStatement ps = null;
String sql = "insert into student(name,number,age,sex)values(?,?,?,?)";
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, student.getName());
ps.setString(2, student.getNumber());
ps.setString(3, student.getAge());
ps.setString(4, student.getSex());
ps.executeUpdate();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (ps != null)
ps.close();
} catch (SQLException sqle) {
}
if (con != null)
freeConnection(con);
}
}
// 根据学生学号判断学生是否存在
public boolean selectStudentByNumber(String number) {
Connection con = null;
PreparedStatement ps = null;
String sql = "select * from student where number=?";
boolean fals = false;
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, number);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
fals = true;
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (ps != null)
ps.close();
} catch (SQLException sqle) {
}
if (con != null)
freeConnection(con);
}
return fals;
}
// 修改学生信息
public StudentBean updateStudentBean(StudentBean student, String oldNumber) {
Connection con = null;
PreparedStatement ps = null;
String sql = "update student set name=?,number=?,age=?,sex=? where number=?";
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, student.getName());
ps.setString(2, student.getNumber());
ps.setString(3, student.getAge());
ps.setString(4, student.getSex());
ps.setString(5, oldNumber);
ps.executeUpdate();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (ps != null)
ps.close();
} catch (SQLException sqle) {
}
if (con != null)
freeConnection(con);
}
return student;
}
// 删除学生信息
public void deleteStudentBean(String number) {
Connection con = null;
PreparedStatement ps = null;
String sql = "delete from student where number=?";
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, number);
ps.executeUpdate();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (ps != null)
ps.close();
} catch (SQLException sqle) {
}
if (con != null)
freeConnection(con);
}
}
// 查询所有学生信息
public ArrayList<StudentBean> selectAllStudent() {
Connection con = null;
PreparedStatement ps = null;
String sql = "select * from student";
ArrayList<StudentBean> mList = new ArrayList<StudentBean>();
try {
con = getConnection();
ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
StudentBean student = new StudentBean();
student.setName(rs.getString("name"));
student.setNumber(rs.getString("number"));
student.setAge(rs.getString("age"));
student.setSex(rs.getString("sex"));
mList.add(student);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (ps != null)
ps.close();
} catch (SQLException sqle) {
}
if (con != null)
freeConnection(con);
}
return mList;
}
// 根据学号查找学生
public StudentBean seleStudentBeans(String number) {
Connection con = null;
PreparedStatement ps = null;
String sql = "select * from student where number =?";
StudentBean student = new StudentBean();
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, number);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
student.setName(rs.getString("name"));
student.setNumber(rs.getString("number"));
student.setAge(rs.getString("age"));
student.setSex(rs.getString("sex"));
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (ps != null)
ps.close();
} catch (SQLException sqle) {
}
if (con != null)
freeConnection(con);
}
return student;
}
}
数据操作部分Imp:
教师imp:
package com.sc.java.managers.imp;
import com.sc.java.managers.bean.TeacherBean;
import com.sc.java.managers.db.TeacherDB;
import com.sc.java.managers.table.StudentTable;
public class TeacherImp {
private TeacherDB db = TeacherDB.getInstance();
private String account;
String passWord = null;
boolean isTeacher = db.selectTeacherAccount(account);
// 教师注册账号操作
public void registerTeacher() {
if (!isTeacher) {
String name = null;
TeacherBean teacher = new TeacherBean(name, account, passWord);
db.addTeacher(teacher);
}
}
// 教师登录系统操作
public void loginTeacher() {
boolean isTeacher = db.selectTeacherLogin(account, passWord);
if (isTeacher) {
StudentTable stu = new StudentTable();
stu.init();
} else {
loginTeacher();
}
}
}
学生imp:
package com.sc.java.managers.imp;
import java.util.ArrayList;
import com.sc.java.managers.bean.StudentBean;
import com.sc.java.managers.db.StudentDB;
public class StudentImp {
public ArrayList<StudentImp> mStudentList = new ArrayList<StudentImp>();// 存储学生对象
String number = null;
String name = null;
String age = null;
String sex = null;
private StudentDB db = StudentDB.getInstance();
StudentBean student = new StudentBean(name, number, age, sex);
boolean isStudent = db.selectStudentByNumber(number);
// 添加学生
public void addStudent(StudentBean student) {
if (!isStudent) {
db.addStudent(student);
} else {
System.out.println("您输入学号已经存在,请重新输入!");
}
}
// 删除学生
public void deleteStudent(String number) {
boolean isStudent = db.selectStudentByNumber(number);
if (!isStudent) {
System.out.println("您输入的学号为:" + number + "的学生不存在!");
} else {
db.deleteStudentBean(number);
}
}
// 根据学号查找学生
public boolean findStudentByNumber(String number) {
boolean isStudent = db.selectStudentByNumber(number);
if (!isStudent) {
System.out.println("您查找的学号为" + number + "的学生不存在!");
} else {
db.seleStudentBeans(number);
}
return isStudent;
}
// 修改学生信息
public void updateStudent(StudentBean student) {
boolean isStudent = db.selectStudentByNumber(number);
if (!isStudent) {
System.out.println("您查找的学号为" + number + "的学生不存在!");
} else {
db.updateStudentBean(student, number);
}
}
// 显示所有学生
public void showAllStudent() {
System.out.println("姓名 " + " \t" + "学号" + "\t" + "年龄" + "\t" + "性别");
ArrayList<StudentBean> list = db.selectAllStudent();
for (StudentBean students : list) {
System.out.println(students.getName() + "\t" + students.getNumber()
+ "\t" + students.getAge() + "\t" + students.getSex());
}
}
// 显示所有学生
public ArrayList<StudentBean> showAllStudents() {
ArrayList<StudentBean> list = db.selectAllStudent();
return list;
}
// 退出学生管理系统
public void exit() {
System.out.println("====您已经退出学生管理系统====");
System.out.println("===欢迎下次再使用学生管理系统===");
System.exit(0);
}
}
教师登陆后操作界面窗口如下:
package com.sc.java.managers.table;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;
public class ConnectStudent extends AbstractTableModel {
private static final long serialVersionUID = -7495940408592595397L;
private Vector content = null;
private String[] titleCols = { "ID", "姓名", "性别", "年龄" };
public ConnectStudent() {
content = new Vector();
}
public ConnectStudent(int count) {
content = new Vector(count);
}
public void addRow(String name, String sex, int age) {
Vector vc = new Vector(4);
vc.add(0, new Integer(content.size()));
vc.add(1, name);
vc.add(2, sex);
vc.add(3, age);
content.add(vc);
}
public void removeRow(int row) {
content.remove(row);
}
public void removeRows(int row, int count) {
for (int i = 0; i < count; i++) {
if (content.size() > row) {
content.remove(row);
}
}
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
if (columnIndex == 0) {
return false;
}
return true;
}
public String getColumnName(int col) {
return titleCols[col];
}
public int getColumnCount() {
return titleCols.length;
}
public int getRowCount() {
return content.size();
}
public Object getValueAt(int row, int col) {
return ((Vector) content.get(row)).get(col);
}
/**
* 使修改的内容生效
*/
public void setValueAt(Object value, int row, int col) {
((Vector) content.get(row)).remove(col);
((Vector) content.get(row)).add(col, value);
this.fireTableCellUpdated(row, col);
}
/**
* 返回数据类型
*/
public Class getColumnClass(int col) {
return getValueAt(0, col).getClass();
}
}
package com.sc.java.managers.table;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import com.sc.java.managers.bean.StudentBean;
import com.sc.java.managers.imp.StudentImp;
public class StudentTable extends JFrame {
private StudentImp stu = new StudentImp();
Container container;
ConnectStudent model;
JTable table;
JLabel stuName, stuNumber, stuAge, stuSex;
JScrollPane tableJSPane;
JTextField stuNameTxt, stuNumberTxt, stuAgeTxt, stuSexTxt;
JButton addBtn, deleteBtn, updateBtn, slectBtn, allBtn, confirmBtn;
JPanel showPanel, jp1, jp2, jp3, jp4, jp5;
public StudentTable() {
super("学生信息管理系统 ");
this.setLocation(450, 100);
this.setSize(600, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void init() {
addBtn = new JButton("添加学生");
deleteBtn = new JButton("删除学生");
updateBtn = new JButton("修改学生");
slectBtn = new JButton("查询学生");
allBtn = new JButton("显示所有学生");
showPanel = new JPanel();
model = new ConnectStudent(20);
table = new JTable(model);
tableJSPane = new JScrollPane(table);
showPanel.add(addBtn);
showPanel.add(deleteBtn);
showPanel.add(updateBtn);
showPanel.add(slectBtn);
showPanel.add(allBtn);
table.setBackground(Color.white);
this.add(tableJSPane, BorderLayout.CENTER);
this.add(showPanel, BorderLayout.NORTH);
// 添加事件处理
addBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
addStudent();
table.updateUI();
}
});
// 删除事件处理
deleteBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
deleteStudent();
table.updateUI();
}
});
// 修改事件处理
updateBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
updateStudent();
table.updateUI();
}
});
// 查询事件处理
slectBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
selectStuddent();
table.updateUI();
}
});
// 遍历事件处理
allBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
showAllStudent();
table.updateUI();
}
});
this.setVisible(true);
}
// 添加学生窗口
public void addStudent() {
JFrame addStu = new JFrame("添加学生信息操作窗口");
addStu.setBounds(400, 200, 300, 200);
container = addStu.getContentPane();
container.setLayout(new GridLayout(5, 1));
addBtn = new JButton("添 加");
stuNumber = new JLabel("学 号:");
stuName = new JLabel("姓 名:");
stuAge = new JLabel("年 龄:");
stuSex = new JLabel("性 别:");
stuNumberTxt = new JTextField(10);
stuNameTxt = new JTextField(10);
stuAgeTxt = new JTextField(10);
stuSexTxt = new JTextField(10);
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
jp4 = new JPanel();
jp5 = new JPanel();
jp1.add(stuName);
jp1.add(stuNameTxt);
jp2.add(stuNumber);
jp2.add(stuNumberTxt);
jp3.add(stuAge);
jp3.add(stuAgeTxt);
jp4.add(stuSex);
jp4.add(stuSexTxt);
jp5.add(addBtn);
container.add(jp1);
container.add(jp2);
container.add(jp3);
container.add(jp4);
container.add(jp5);
addStu.setVisible(true);
addBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = stuNameTxt.getText();
String number = stuNumberTxt.getText();
String age = stuAgeTxt.getText();
String sex = stuSexTxt.getText();
if (number.equals("") || name.equals("") || age.equals("")
|| sex.equals("")) {
JOptionPane.showMessageDialog(null, "添加信息不能为空!");
return;
}
boolean flag = stu.findStudentByNumber(number);
if (!flag) {
StudentBean student = new StudentBean(name, number, age,
sex);
stu.addStudent(student);
JOptionPane.showMessageDialog(null, "添加成功!");
StudentTable.this.setVisible(true);
} else {
JOptionPane.showMessageDialog(null, "添加学生学号重复!");
}
}
});
}
// 删除学生窗口
public void deleteStudent() {
JFrame deleteStu = new JFrame("删除学生信息操作窗口");
deleteStu.setBounds(400, 200, 300, 200);
container = deleteStu.getContentPane();
container.setLayout(new GridLayout(3, 1));
confirmBtn = new JButton("确 定");
stuNumber = new JLabel("学 号:");
stuNumberTxt = new JTextField(10);
jp1 = new JPanel();
jp2 = new JPanel();
jp1.add(stuNumber);
jp1.add(stuNumberTxt);
jp2.add(confirmBtn);
container.add(jp1);
container.add(jp2);
deleteStu.setVisible(true);
confirmBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String number = stuNumberTxt.getText();
if (number.equals("")) {
JOptionPane.showMessageDialog(null, "删除信息不能为空!");
return;
}
boolean flag = stu.findStudentByNumber(number);
if (!flag) {
JOptionPane.showMessageDialog(null, "查无该学号的学生!");
} else {
stu.deleteStudent(number);
JOptionPane.showMessageDialog(null, "删除成功!");
StudentTable.this.setVisible(true);
}
}
});
}
// 根据学号查询学生
public void selectStuddent() {
JFrame selectStu = new JFrame("查询学生信息操作窗口");
selectStu.setBounds(400, 200, 300, 200);
container = selectStu.getContentPane();
container.setLayout(new GridLayout(3, 1));
confirmBtn = new JButton("确 定");
stuNumber = new JLabel("学 号:");
stuNumberTxt = new JTextField(10);
jp1 = new JPanel();
jp2 = new JPanel();
jp1.add(stuNumber);
jp1.add(stuNumberTxt);
jp2.add(confirmBtn);
container.add(jp1);
container.add(jp2);
selectStu.setVisible(true);
confirmBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String number = stuNumberTxt.getText();
if (number.equals("")) {
JOptionPane.showMessageDialog(null, "查询信息不能为空!");
return;
}
boolean flag = stu.findStudentByNumber(number);
if (!flag) {
JOptionPane.showMessageDialog(null, "查无该学号的学生!");
} else {
stu.findStudentByNumber(number);
JOptionPane.showMessageDialog(null, "找到该生!");
StudentTable.this.setVisible(true);
}
}
});
}
// 查询所有的学生对象
public void showAllStudent() {
JFrame showAllStu = new JFrame("查询所有学生信息操作窗口");
showAllStu.setBounds(400, 200, 300, 200);
container = showAllStu.getContentPane();
container.setLayout(new GridLayout(3, 1));
confirmBtn = new JButton("确 定");
jp1 = new JPanel();
jp1.add(confirmBtn);
container.add(jp1);
showAllStu.setVisible(true);
confirmBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 将数据库中的所有学生信息显示到table上面
ArrayList<StudentBean> lists = stu.showAllStudents();
System.out.println("list >>> :" + lists.size());
for (StudentBean student : lists) {
System.out.println("Name >>> " + student.getName());
model.addRow(student.getName(), student.getSex(), Integer
.valueOf(student.getAge()));
}
table.updateUI();
// stu.showAllStudent();
}
});
}
// 修改学生信息
public void updateStudent() {
JFrame updateStu = new JFrame("修改学生信息操作窗口");
updateStu.setBounds(400, 200, 300, 200);
container = updateStu.getContentPane();
container.setLayout(new GridLayout(3, 1));
confirmBtn = new JButton("确 定");
jp1 = new JPanel();
jp1.add(confirmBtn);
container.add(jp1);
updateStu.setVisible(true);
confirmBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFrame studentMassge = new JFrame("学生信息操作窗口");
studentMassge.setBounds(400, 200, 300, 200);
container = studentMassge.getContentPane();
container.setLayout(new GridLayout(5, 1));
confirmBtn = new JButton("确 定");
stuNumber = new JLabel("学 号:");
stuName = new JLabel("姓 名:");
stuAge = new JLabel("年 龄:");
stuSex = new JLabel("性 别:");
stuNumberTxt = new JTextField(10);
stuNameTxt = new JTextField(10);
stuAgeTxt = new JTextField(10);
stuSexTxt = new JTextField(10);
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
jp4 = new JPanel();
jp5 = new JPanel();
jp1.add(stuName);
jp1.add(stuNameTxt);
jp2.add(stuNumber);
jp2.add(stuNumberTxt);
jp3.add(stuAge);
jp3.add(stuAgeTxt);
jp4.add(stuSex);
jp4.add(stuSexTxt);
jp5.add(confirmBtn);
container.add(jp1);
container.add(jp2);
container.add(jp3);
container.add(jp4);
container.add(jp5);
// 确定按钮事件
confirmBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name = stuNameTxt.getText();
String number = stuNumberTxt.getText();
String age = stuAgeTxt.getText();
String sex = stuSexTxt.getText();
if (number.equals("") || name.equals("")
|| age.equals("") || sex.equals("")) {
JOptionPane.showMessageDialog(null, "修改信息不能为空!");
return;
}
boolean flag = stu.findStudentByNumber(number);
if (!flag) {
StudentBean student = new StudentBean(name, number,
age, sex);
stu.addStudent(student);
JOptionPane.showMessageDialog(null, "修改成功!");
StudentTable.this.setVisible(true);
} else {
JOptionPane.showMessageDialog(null, "修改学生学号已存在!");
}
}
});
}
});
}
// 检测每个方法的程序
public static void main(String args[]) {
StudentTable s = new StudentTable();
s.init();
// s.addStudent();
// s.deleteStudent();
// s.selectStuddent();
// s.updateStudent();
}
}