




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/* * 功能:简易学生管理系统 * 1.能过姓名查询; * 2.增.删.改学生信息 * */package com.sutmanage.version2;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.util.*;import javax.swing.*;import com.mysql.jdbc.PreparedStatement;import java.sql.*;public class StuManageSystemVersion1 extends JFrame implements ActionListener/定义组件,界面由三部分组成,上部是姓名查询部分,为一个JPanel,中间是一个JScorllPane,底部也是一个JPanel,放了三个按钮JPanel top,bottom;JScrollPane jsp;JTable jt;JButton search,add,delete,update;JLabel name;JTextField jtf;StuModel sm=null;public StuManageSystemVersion1()/创建组件/Top组件top=new JPanel();name=new JLabel(请输入姓名);jtf=new JTextField(22);search=new JButton(查询);search.addActionListener(this);top.add(name);top.add(jtf);top.add(search);sm=new StuModel();sm.queryStu(select * from stus, null);jt=new JTable(sm);jt.setSelectionBackground(Color.RED);jsp=new JScrollPane(jt);/底部组件bottom=new JPanel();add=new JButton(增加);add.addActionListener(this);delete=new JButton(删除);delete.addActionListener(this);update=new JButton(修改);update.addActionListener(this);bottom.add(add);bottom.add(delete);bottom.add(update);/添加组件this.add(top,BorderLayout.NORTH);this.add(jsp,BorderLayout.CENTER);this.add(bottom,BorderLayout.SOUTH);/设置窗体属性this.setSize(400,300);this.setTitle(学生管理系统);int w=Toolkit.getDefaultToolkit().getScreenSize().width;int h=Toolkit.getDefaultToolkit().getScreenSize().height;this.setLocation(w/2-200, h/2-150);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);public static void main(String args) / TODO Auto-generated method stubnew StuManageSystemVersion1();/更新数据模型public void updStuModel()sm=new StuModel();sm.queryStu(select * from stus, null);jt.setModel(sm);Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif(e.getSource()=search)String s=jtf.getText().trim();String name=s;String sql=;if(s.length()!=0)sql=select * from Stus where StuName=?;else if(s.length()=0)sql=select * from Stus;name=null;sm=new StuModel();sm.queryStu(sql, name);jt.setModel(sm);jtf.setText();else if(e.getSource()=add)Boolean flag=true;while(flag)AddNewStu ans=new AddNewStu(this, 添加新学生, true);/更新数据模型this.updStuModel();/确认是否添加新的学生int i=JOptionPane.showConfirmDialog(this, 是否继续添加学生?,JOptionPane.YES_NO_OPTION);if(i=JOptionPane.NO_OPTION)flag=false;else if(e.getSource()=delete)if(jt.getSelectedRow()=-1)JOptionPane.showMessageDialog(this, 请先选择一行数据);return;elseint selectID=jt.getSelectedRow();String stuID=jt.getValueAt(selectID, 0).toString();String sql=delete from stus where stuID=?;sm=new StuModel();sm.updStu(sql, stuID);/更新数据模型this.updStuModel();else if(e.getSource()=update)if(jt.getSelectedRow()=-1)JOptionPane.showMessageDialog(this, 请先选择一行数据);return;elseint id=jt.getSelectedRow();sm=new StuModel();sm.queryStu(select * from stus, null);UpdateStu us=new UpdateStu(this, 修改学生信息, true,sm,id);/更新数据模型this.updStuModel();/* * 这是我的一个Stu表的模型 * */package com.sutmanage.version2;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Vector;import javax.swing.table.AbstractTableModel;import com.mysql.fabric.xmlrpc.base.Array;public class StuModel extends AbstractTableModel ResultSet rs;Vector cloumn;Vector row;SqlHelper sh;/ 查询数据public void queryStu(String sql, String args) / 中间的显示组件cloumn = new Vector();cloumn.add(学生ID);cloumn.add(姓名);cloumn.add(年龄);cloumn.add(性别);cloumn.add(系别);row = new Vector();sh = new SqlHelper();rs = sh.query(sql, args);try while (rs.next() Vector hang = new Vector();hang.add(rs.getInt(1);hang.add(rs.getString(2);hang.add(rs.getInt(3);hang.add(rs.getString(4);hang.add(rs.getString(5);row.add(hang); catch (Exception e) / TODO: handle exceptionsh.close();/ 增.删.改操作public boolean updStu(String sql, String args) sh = new SqlHelper();return sh.updSQL(sql, args);Override/ 得到共有多少列public int getColumnCount() / TODO Auto-generated method stubreturn this.cloumn.size();Override/ 得到共有多少行public int getRowCount() / TODO Auto-generated method stubreturn this.row.size();Override/ 得到某行某列的值public Object getValueAt(int rowIndex, int columnIndex) / TODO Auto-generated method stubreturn this.row.get(rowIndex).get(columnIndex);Overridepublic String getColumnName(int index) / TODO Auto-generated method stubreturn this.cloumn.get(index);package com.sutmanage.version2;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class AddNewStu extends JDialog implements ActionListener / 定义swing组件JPanel top, bottom, left;JLabel stuID, stuName, stuAge, stuSex, stuDepart;JTextField id, name, age, sex, depart;JButton save, cancel;StuModel sm = null;/ 构造函数public AddNewStu(JFrame owner, String title, boolean modal) super(owner, title, modal);/ 创建组件top = new JPanel(new GridLayout(5, 1);left = new JPanel(new GridLayout(5, 1);stuID = new JLabel(学生ID, JLabel.CENTER);stuName = new JLabel(姓名, JLabel.CENTER);stuAge = new JLabel(年龄, JLabel.CENTER);stuSex = new JLabel(性别, JLabel.CENTER);stuDepart = new JLabel(系别, JLabel.CENTER);id = new JTextField(15);name = new JTextField(15);age = new JTextField(15);sex = new JTextField(15);depart = new JTextField(15);top.add(stuID);top.add(stuName);top.add(stuAge);top.add(stuSex);top.add(stuDepart);left.add(id);left.add(name);left.add(age);left.add(sex);left.add(depart);bottom = new JPanel();save = new JButton(保存);save.addActionListener(this);cancel = new JButton(取消);cancel.addActionListener(this);bottom.add(save);bottom.add(cancel);this.add(top, BorderLayout.CENTER);this.add(left, BorderLayout.EAST);this.add(bottom, BorderLayout.SOUTH);/ 设置窗体属性this.setSize(230, 200);this.setLocation(1000, 300);this.setVisible(true);Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (e.getSource() = save) String values = id.getText().trim(), name.getText().trim(),age.getText().trim(), sex.getText().trim(),depart.getText().trim() ;String sql = insert into stus values(?,?,?,?,?);sm = new StuModel();sm.updStu(sql, values);this.dispose();else if(e.getSource()=cancel)this.dispose();package com.sutmanage.version2;import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class UpdateStu extends JDialog implements ActionListener / 定义swing组件JPanel top, bottom, left;JLabel stuID, stuName, stuAge, stuSex, stuDepart;JTextField id, name, age, sex, depart;JButton save, cancel;StuModel sm = null;String values;/ 构造函数public UpdateStu(JFrame owner, String title, boolean modal, StuModel sm,int idValue) super(owner, title, modal);/ 创建组件top = new JPanel(new GridLayout(5, 1);left = new JPanel(new GridLayout(5, 1);stuID = new JLabel(学生ID, JLabel.CENTER);stuName = new JLabel(姓名, JLabel.CENTER);stuAge = new JLabel(年龄, JLabel.CENTER);stuSex = new JLabel(性别, JLabel.CENTER);stuDepart = new JLabel(系别, JLabel.CENTER);id = new JTextField(15);id.setText(sm.getValueAt(idValue, 0).toString();id.setEditable(false);name = new JTextField(15);name.setText(sm.getValueAt(idValue, 1).toString();age = new JTextField(15);age.setText(sm.getValueAt(idValue, 2).toString();sex = new JTextField(15);sex.setText(sm.getValueAt(idValue, 3).toString();depart = new JTextField(15);depart.setText(sm.getValueAt(idValue, 4).toString();top.add(stuID);top.add(stuName);top.add(stuAge);top.add(stuSex);top.add(stuDepart);left.add(id);left.add(name);left.add(age);left.add(sex);left.add(depart);bottom = new JPanel();save = new JButton(保存);save.addActionListener(this);cancel = new JButton(取消);cancel.addActionListener(this);bottom.add(save);bottom.add(cancel);this.add(top, BorderLayout.CENTER);this.add(left, BorderLayout.EAST);this.add(bottom, BorderLayout.SOUTH);/ 设置窗体属性this.setSize(230, 200);this.setLocation(1000, 300);this.setVisible(true);Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (e.getSource() = save) String values = name.getText().trim(), age.getText().trim(),sex.getText().trim(), depart.getText().trim(),id.getText().trim() ;String sql = update stus set stuName=?,stuAge=?,stuSex=?,stuDepart=? where stuID=?;sm = new StuModel();sm.updStu(sql, values);this.dispose();else if(e.getSource()=cancel)this.dispose();/* * 功能:数据库操作模型 */package com.sutmanage.version2;import java.sql.*;import java.util.Vector;public class SqlHelper public static final String DRIVER = com.mysql.jdbc.Driver;public static final String DBURL = jdbc:mysql:/:3306/StuManage;public static final String DBUSRER = root;public static final String DBPWD = 123456;/ 连接数据库的组件Connection con;java.sql.PreparedStatement ps;ResultSet rs;/ 构造函数,在调用SqlHelper类时,就自动建立连接public SqlHelper() / 建立数据库连接try Class.forName(DRIVER); cat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医疗健康行业人工智能技术应用前景研究报告
- 2025年文化创意产业文化创意产品市场前景分析报告
- 2025年智能化交通系统发展趋势与市场前景研究报告
- 常山县2025年浙江衢州常山县“英才荟”事业单位紧缺急需人才招聘18人(事业编制)笔试历年参考题库附带答案详解
- 2025年区块链技术在物流行业的应用前景研究报告
- 天津市2025天津市地质矿产勘查开发局所属事业单位第二次招聘(含高层次人才)29人笔试历年参考题库附带答案详解
- 国家事业单位招聘2025国家海洋信息中心考察对象笔试历年参考题库附带答案详解
- 国家事业单位招聘2025中国大洋矿产资源研究开发协会(中国大洋事务管理局)招聘应届毕业生拟笔试历年参考题库附带答案详解
- 南宁市2025广西南宁市良庆区经济贸易和信息化局招聘1人笔试历年参考题库附带答案详解
- 2025葛洲坝集团(西藏)建设投资有限公司招聘7人笔试参考题库附带答案详解
- 人教版高中地理必修第一册第一章宇宙中的地球第一节地球的宇宙环境练习含答案
- 星地激光通信技术-洞察分析
- 诊所中药饮片清单汇编
- 《室外管网工程施工》课件
- 餐饮外卖窗口改造方案
- 糖尿病足报告
- 国有企业战略使命评价制度
- 吊车施工专项方案
- 合规风险管理制度
- 病毒课件教学课件
- 9月30日烈士纪念日缅怀先烈功绩弘扬先烈精神课件
评论
0/150
提交评论