项目——学生信息管理系统3

news/2025/2/14 6:55:43/

目录

班级添加的界面实现

创建班级的实体类

在org.xingyun.dao 包下 编写 ClassDao

创建 AddStudentClassFrm 添加班级页面

注意创建成 JInternalFrame 类型

给控件起个名字

注释掉main方法

给提交按钮绑定事件

回到 MainFrm.java 给添加班级按钮绑定事件

启动测试

班级列表页面的制作

创建 ManageClassFrm 注意创建成 JInternalFrame

布局设置成绝对定位

添加滚动容器

滚动容器中,添加 表格

设置表头

给各个组件起个名字

回到 MainFrm.java 给班级列表按钮绑定事件

在 ClassDao 里面提供查询的方法

当 ManageClassFrm 页面打开后,查询班级信息展示到表格中

在 ManageClassFrm 提供一个方法,展示班级数据

在 ManageClassFrm 的构造方法中调用 setTable()方法执行

测试

给查询按钮绑定事件

继续制作 ManageClassFrm 页面 加上删除 修改功能

给表格中的每一行数据绑定事件

测试

给确认删除按钮,添加事件

编写ClassDao 提供删除操作

编写代码进行删除

给确认修改按钮添加点击事件

编写ClassDao提供修改的方法


班级添加的界面实现

创建班级的实体类

public class StudentClass {private int id;private String name;private String info;//get set 方法自己补上
}   

在org.xingyun.dao 包下 编写 ClassDao

public class ClassDao {// 添加班级public boolean addClass(StudentClass scl) {try {Connection con = JDBCUtils.getConnection();String sql = "insert into s_class values(null,?,?)";java.sql.PreparedStatement preparedStatement = con.prepareStatement(sql);preparedStatement.setString(1, scl.getName());preparedStatement.setString(2, scl.getInfo());if (preparedStatement.executeUpdate() > 0) {return true;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return false;}
}
​

创建 AddStudentClassFrm 添加班级页面

注意创建成 JInternalFrame 类型

页面制作,自己拖一下

给控件起个名字

classNameTextField 班级名称

classInfoTextArea 班级信息 addClassBtnNewButton 按钮

注释掉main方法

给提交按钮绑定事件

//添加班级按钮的事件绑定addClassBtnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//抽取个方法addClass(e);}});
// 添加班级protected void addClass(ActionEvent e) {// TODO Auto-generated method stub// TODO Auto-generated method stubString className = classNameTextField.getText().toString();String classInfo = classInfoTextArea.getText().toString();if (StringUtil.isEmpty(className)) {JOptionPane.showMessageDialog(this, "班级名称不能为空!");return;}StudentClass scl = new StudentClass();scl.setName(className);scl.setInfo(classInfo);ClassDao classDao = new ClassDao();if (classDao.addClass(scl)) {JOptionPane.showMessageDialog(this, "班级添加成功!");} else {JOptionPane.showMessageDialog(this, "班级添加失败!");}// 添加完后,清空表单classNameTextField.setText("");classInfoTextArea.setText("");
​}

回到 MainFrm.java 给添加班级按钮绑定事件

//添加班级menuItem_4.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {openAddClassFrm(e);}});
    //打开添加班级页面protected void openAddClassFrm(ActionEvent e) {// TODO Auto-generated method stubAddStudentClassFrm addStudentClassFrm = new AddStudentClassFrm();addStudentClassFrm.setVisible(true);desktopPane.add(addStudentClassFrm);}

启动测试

班级列表页面的制作

创建 ManageClassFrm 注意创建成 JInternalFrame

注释掉main方法

布局设置成绝对定位

添加滚动容器

滚动容器中,添加 表格

设置表头

给各个组件起个名字

classListTable;

selectBtnNewButton

classNametextField;

回到 MainFrm.java 给班级列表按钮绑定事件

//班级列表绑定事件menuItem_5.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//抽个方法openManageClassFrm(e);}});
// 打开班级列表页面protected void openManageClassFrm(ActionEvent e) {// TODO Auto-generated method stubManageClassFrm manageClassFrm = new ManageClassFrm();manageClassFrm.setVisible(true);desktopPane.add(manageClassFrm);}
​

在 ClassDao 里面提供查询的方法

public List<StudentClass> getClassList(StudentClass studentClass) {List<StudentClass> retList = new ArrayList<StudentClass>();String sqlString = "select * from s_class";if (!StringUtil.isEmpty(studentClass.getName())) {sqlString += " where name like '%" + studentClass.getName() + "%'";}try {Connection con = JDBCUtils.getConnection();PreparedStatement preparedStatement = con.prepareStatement(sqlString);ResultSet executeQuery = preparedStatement.executeQuery();while (executeQuery.next()) {StudentClass sc = new StudentClass();sc.setId(executeQuery.getInt("id"));sc.setName(executeQuery.getString("name"));sc.setInfo(executeQuery.getString("info"));retList.add(sc);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return retList;}

当 ManageClassFrm 页面打开后,查询班级信息展示到表格中

在 ManageClassFrm 提供一个方法,展示班级数据

//给表格填充数据private void setTable(StudentClass studentClass){//获取表格控件模型DefaultTableModel dft = (DefaultTableModel) classListTable.getModel();dft.setRowCount(0); //清空表格数据ClassDao classDao = new ClassDao();List<StudentClass> classList = classDao.getClassList(studentClass);//遍历集合for (StudentClass sc : classList) {Vector v = new Vector();v.add(sc.getId());v.add(sc.getName());v.add(sc.getInfo());//把数据添加 表格中dft.addRow(v);}}

在 ManageClassFrm 的构造方法中调用 setTable()方法执行

测试

给查询按钮绑定事件

//查询按钮绑定事件selectBtnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//获取输入框输入的内容String className = classNametextField.getText().toString().trim();StudentClass studentClass = new StudentClass();studentClass.setName(className);//调用方法setTable(studentClass);}});

继续制作 ManageClassFrm 页面 加上删除 修改功能

给组件起个名字

editClassNameTextField

okEditButton

okDeleteBtnNewButton

editClassInfoTextArea

给表格中的每一行数据绑定事件

// 给表格中每一行绑定鼠标点击事件classListTable.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {// 弹框个框测试下//JOptionPane.showMessageDialog(null, "点击了");selectedTableRow(e);}});
//选中的哪一行,把数据展示到编辑框里面protected void selectedTableRow(MouseEvent me) {// TODO Auto-generated method stubDefaultTableModel dft = (DefaultTableModel) classListTable.getModel();editClassNameTextField.setText(dft.getValueAt(classListTable.getSelectedRow(), 1).toString().trim());editClassInfoTextArea.setText(dft.getValueAt(classListTable.getSelectedRow(), 2).toString().trim());}

测试

给确认删除按钮,添加事件

编写ClassDao 提供删除操作

public boolean delete(int id) {String sql = "delete from s_class where id=?";try {Connection con = JDBCUtils.getConnection();PreparedStatement preparedStatement = con.prepareStatement(sql);preparedStatement.setInt(1, id);if (preparedStatement.executeUpdate() > 0) {return true;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return false;}

编写代码进行删除

//删除按钮,绑定事件okDeleteBtnNewButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//抽取一个删除方法deleteClassAct(e);}});

// 删除班级操作protected void deleteClassAct(ActionEvent ae) {// TODO Auto-generated method stubif (JOptionPane.showConfirmDialog(this, "您确定删除么?") != JOptionPane.OK_OPTION) {return;}// 获取选中行的索引int index = classListTable.getSelectedRow();if (index == -1) {JOptionPane.showMessageDialog(this, "请选中要删除的数据!");return;}//获取表格模型DefaultTableModel dft = (DefaultTableModel) classListTable.getModel();// 获取选中行的第一列int id = Integer.parseInt(dft.getValueAt(classListTable.getSelectedRow(), 0).toString());ClassDao classDao = new ClassDao();if (classDao.delete(id)) {JOptionPane.showMessageDialog(this, "删除成功!");} else {JOptionPane.showMessageDialog(this, "删除失败!");}//查询数据setTable(new StudentClass());}

给确认修改按钮添加点击事件

编写ClassDao提供修改的方法

public boolean update(StudentClass sc) {String sql = "update s_class set name=?, info=? where id=?";try {Connection con = JDBCUtils.getConnection();PreparedStatement preparedStatement = con.prepareStatement(sql);preparedStatement.setString(1, sc.getName());preparedStatement.setString(2, sc.getInfo());preparedStatement.setInt(3, sc.getId());if (preparedStatement.executeUpdate() > 0) {return true;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return false;}

// 确认修改按钮绑定事件okEditButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {submitEditAct(e); }});
//修改操作protected void submitEditAct(ActionEvent ae) {// TODO Auto-generated method stubClassDao classDao = new ClassDao();int index = classListTable.getSelectedRow();if(index == -1){JOptionPane.showMessageDialog(this, "请选中要修改的数据!");return;}DefaultTableModel dft = (DefaultTableModel) classListTable.getModel();String className = dft.getValueAt(classListTable.getSelectedRow(), 1).toString();String classInfo = dft.getValueAt(classListTable.getSelectedRow(), 2).toString();String editClassName = editClassNameTextField.getText().toString();String editClassInfo = editClassInfoTextArea.getText().toString();if(StringUtil.isEmpty(editClassName)){JOptionPane.showMessageDialog(this, "请填写要修改的名称!");return;}if(className.equals(editClassName) && classInfo.equals(editClassInfo)){JOptionPane.showMessageDialog(this, "您还没有做任何修改!");return;}int id = Integer.parseInt(dft.getValueAt(classListTable.getSelectedRow(), 0).toString());StudentClass sc = new StudentClass();sc.setId(id);sc.setName(editClassName);sc.setInfo(editClassInfo);if(classDao.update(sc)){JOptionPane.showMessageDialog(this, "更新成功!");}else{JOptionPane.showMessageDialog(this, "更新失败!");}//修改后,再次查询数据setTable(new StudentClass());}


http://www.ppmy.cn/news/646543.html

相关文章

中科院计算机所博士何飞,何飞-中国科学院大学-UCAS

发表论文 (1) Plasmapause surface wave oscillates the magnetosphere and diffuse aurora, Nature Communications, 2020, 第 1 作者(2) Equatorial aurora: the aurora-like airglow in the negative magnetic anomaly, National Science Review, 2020, 第 1 作者(3) 行星空…

中国最小黑客:为不做作业 黑掉学校系统

【中国最小黑客&#xff1a;为了不做作业 黑掉学校系统】2014中国互联网安全大会&#xff0c;12岁的汪正扬成了中国最小黑客。还在清华附中读初一的他&#xff1a;为了不做作业&#xff0c;入侵了学校的在线答题系统&#xff1b;他利用黑客"抓包技术"&#xff0c;花1…

杨辉三角.

题目&#xff1a;杨辉三角 程序&#xff1a; #include<stdio.h>int main(){- [ ] int s 1, h; // 数值和高度int i, j; // 循环计数scanf("%d", &h); // 输入层数printf("1\n"); …

香港科技大学委任汪扬教授为副校长(大学拓展)

香港科大今日宣布委任汪扬教授为下任副校长(大学拓展)&#xff0c;自本年10月1日起生效。 汪扬教授现为香港科大理学院院长及数学系讲座教授。汪教授是国际知名的学者&#xff0c;研究范畴广泛&#xff1b;他在纯数学及跨学科数学两大范畴发表的研究论文超过100篇&#xff0c;当…

计算机学院杨洋,杨洋-湖北大学计算机与信息工程学院

杨 洋 博士, 讲师 湖北大学计算机与信息工程学院 武汉, 430062,中国 个人简介 杨洋&#xff0c;分别于2009年与2012年于武汉理工大学取得学士和硕士学位&#xff0c;2014年受国家留学基金委资助在加拿大西蒙菲莎大学访学&#xff0c;2017年于华中科技大学取得博士学位。2017年…

南航计算机科学与技术学院院徽,南京航空航天大学计算机科学与技术学院简介...

1959年&#xff0c;南航设立了“解算装置”专业&#xff0c;是全国最早设立计算机专业的高校之一。1983年正式成立计算机工程系&#xff0c;2010年11月&#xff0c;经学校批准&#xff0c;成立计算机科学与技术学院&#xff0c;下设计算机科学与技术系、信息安全系、软件工程系…

湖南大学计算机学院陈浩,杨圣洪-湖大信息科学与工程学院

[1] 杨圣洪,贾焰,周四望.无线传感器网络基于虚拟节点的小波压缩方法[J].软件学报,2013,24(3):557?563. Accession Number 20131416162004(EI) DOI:10.3724/SP.J.1001.2013.04235 [2] 杨圣洪,贾焰.非成熟领域的本体构造方法[J].计算机工程与应用,2008,24(44):153-155. [3] 杨圣…

关注博客江正军

http://www.cnblogs.com/jiangzhengjun 转载于:https://www.cnblogs.com/springzt/p/6898935.html