




免费预览已结束,剩余14页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package studentinfo;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.border.*;import javax.swing.JOptionPane;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableColumn;import java.sql.*;import java.awt.GridLayout;/网格式布局/导入javar需要的jar包public class StudentInfo public StudentInfo()/构造方法 public static void main(String args) / TODO code application logic here loginFrame lf=new loginFrame();/加载窗体 lf.setVisible(true);/设置窗体可见 lf.addWindowListener(new WindowAdapter()/添加窗口监听以接受关闭事件 public void windowClosing(WindowEvent e) System.exit(0); ); /学生成绩管理系统界面class mainFrame extends JFrame implements ActionListenerMenuBar myMenuBar=new MenuBar();/菜单Menu myMenuFile,myMenuEdit,myMenuUser,myMenuAbout;MenuItem miNew,miOpen,miSave,miSaveAs,miExit;MenuItem miAdd,miEdit,miDel,miFind,miShow,miUser,miAbout;public JTable table = new JTable();/表格public DefaultTableModel mm ;/表格模型public mainFrame()myMenuFile=new Menu(文件);miNew=new MenuItem(新建);miOpen=new MenuItem(打开);miSave=new MenuItem(保存);miExit=new MenuItem(退出);/miNew.enable(false);/miOpen.enable(false);/miSave.enable(false);/myMenuFile.add(miNew);/myMenuFile.add(miOpen);/myMenuFile.add(miSave);myMenuFile.add(miExit);myMenuEdit=new Menu(数据编辑);miFind=new MenuItem(查找数据);miAdd=new MenuItem(添加数据);miEdit=new MenuItem(修改数据);miDel=new MenuItem(删除数据);miShow=new MenuItem(全部显示);myMenuEdit.add(miFind);myMenuEdit.add(miAdd);myMenuEdit.add(miEdit);myMenuEdit.add(miDel);myMenuEdit.add(miShow);myMenuUser=new Menu(用户管理);miUser=new MenuItem(编辑用户);myMenuUser.add(miUser);myMenuAbout=new Menu(关于我);miAbout=new MenuItem(我的信息);myMenuAbout.add(miAbout);myMenuBar.add(myMenuFile);myMenuBar.add(myMenuEdit);myMenuBar.add(myMenuUser);myMenuBar.add(myMenuAbout);String col = 学号,姓名,性别,班级,专业,大学语文,大学英语,高等数学;/创建属性列名mm= new DefaultTableModel(col,0);table.setModel(mm);JScrollPane tableScrollPane = new JScrollPane(table);/设置滚动条this.setMenuBar(myMenuBar);this.add(tableScrollPane);miExit.addActionListener(this);/为各按钮注册事件监听器对象miFind.addActionListener(this);miAdd.addActionListener(this);miEdit.addActionListener(this);miDel.addActionListener(this);miShow.addActionListener(this);miUser.addActionListener(this);miAbout.addActionListener(this);public void freshTable(String sql)myConnection conn=new myConnection();/获得数据库连接ResultSet rs;/保存查询返回结果对象rs=conn.getResult(sql);if (rs!=null)trymm.setRowCount(0);table.setModel(mm);while(rs.next() String 学号 = rs.getString(学号); String 姓名 = rs.getString(姓名); String 性别 = rs.getString(性别); String 班级 = rs.getString(班级); String 专业 = rs.getString(专业); String 大学语文 = rs.getString(大学语文); String 大学英语 = rs.getString(大学英语); String 高等数学 = rs.getString(高等数学); String cloumns =学号,姓名,性别,班级,专业,大学语文,大学英语,高等数学; mm.addRow(cloumns); /table.clearSelection(); table.setModel(mm);catch(Exception e)System.out.println(e.toString();/捕获异常public void actionPerformed(ActionEvent e)/重载动作事件接口中的方法/退出if (e.getSource()=miExit)System.exit(0);/查找else if(e.getSource()=miFind)findFrame ff=new findFrame(this);ff.setVisible(true);/添加else if(e.getSource()=miAdd)addFrame af=new addFrame(this);af.setVisible(true);/修改else if(e.getSource()=miEdit)if (table.getSelectedRow()=-1)JOptionPane.showMessageDialog(null, 请选择你要修改的内容, 温馨提示, JOptionPane.INFORMATION_MESSAGE);/弹窗提示elseeditFrame ef=new editFrame(this);ef.学号.setText(String)table.getValueAt(table.getSelectedRow(),0);ef.姓名.setText(String)table.getValueAt(table.getSelectedRow(),1);ef.性别.setText(String)table.getValueAt(table.getSelectedRow(),2);ef.班级.setText(String)table.getValueAt(table.getSelectedRow(),3);ef.专业.setText(String)table.getValueAt(table.getSelectedRow(),4);ef.大学语文.setText(String)table.getValueAt(table.getSelectedRow(),5);ef.大学英语.setText(String)table.getValueAt(table.getSelectedRow(),6);ef.高等数学.setText(String)table.getValueAt(table.getSelectedRow(),7);ef.setVisible(true);this.freshTable(select * from 学生成绩表);/刷新表格/删除else if(e.getSource()=miDel)if (table.getSelectedRow()=-1)JOptionPane.showMessageDialog(null, 请选择你要删除的行, 温馨提示, JOptionPane.INFORMATION_MESSAGE);elseString sql=delete from 学生成绩表 where 学号 = +table.getValueAt(table.getSelectedRow(),0)+;/JOptionPane.showMessageDialog(null, sql, 温馨提示, JOptionPane.INFORMATION_MESSAGE);myConnection conn=new myConnection();if (conn.executeSql(sql)JOptionPane.showMessageDialog(null, 成功删除, 温馨提示, JOptionPane.INFORMATION_MESSAGE);this.freshTable(select * from 学生成绩表);elseJOptionPane.showMessageDialog(null, 未知错误, 删除失败, JOptionPane.INFORMATION_MESSAGE);/显示else if(e.getSource()=miShow)/JOptionPane.showMessageDialog(null, 未知错误, 删除失败, JOptionPane.INFORMATION_MESSAGE);this.freshTable(select * from 学生成绩表);/编辑用户else if(e.getSource()=miUser)userFrame uf=new userFrame();uf.setVisible(true);/作业说明else if(e.getSource()=miAbout)aboutFrame af=new aboutFrame();af.setVisible(true);class myConnectionResultSet re;String strurl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=学生管理数据库.mdb;/String strurl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=学生管理数据库.mdb;/String strurl = jdbc:odbc:cah;/cah为数据源名称public myConnection()public ResultSet getResult(String sql)tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection conn=DriverManager.getConnection(strurl);Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet re=stmt.executeQuery(sql);return re;catch(Exception e)e.printStackTrace();/异常处理return null;public boolean executeSql(String sql)tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection conn=DriverManager.getConnection(strurl);Statement stmt=conn.createStatement();stmt.executeUpdate(sql);mit();return true;catch(Exception e) e.printStackTrace();return false;class addFrame extends JDialog implements ActionListenerpublic static final int WIDTH = 400;public static final int HEIGHT = 400;JLabel 学号1,姓名1,性别1,班级1,专业1,大学语文1,大学英语1,高等数学1;JTextField 学号,姓名,性别,班级,专业,大学语文,大学英语,高等数学;JButton b;JPanel p;mainFrame mf;public addFrame(mainFrame mmf) setTitle(添加学生成绩); setSize(WIDTH,HEIGHT); setLocation(120,180); Container contentPane = getContentPane();/创建一个容器对象 contentPane.setLayout(new FlowLayout();/流式布局 学号1=new JLabel(学号); 姓名1=new JLabel(姓名); 性别1=new JLabel(性别); 班级1=new JLabel(班级); 专业1=new JLabel(专业); 大学语文1=new JLabel(大学语文); 大学英语1=new JLabel(大学英语); 高等数学1=new JLabel(高等数学); 学号=new JTextField(5); 姓名=new JTextField(5); 性别=new JTextField(5); 班级=new JTextField(5); 专业=new JTextField(5); 大学语文=new JTextField(5); 大学英语=new JTextField(10); 高等数学=new JTextField(10); b=new JButton(确定); p=new JPanel(); p.setLayout(new GridLayout(10,2,5,5);/表格布局 p.add(学号1); p.add(学号); p.add(姓名1); p.add(姓名); p.add(性别1); p.add(性别); p.add(班级1); p.add(班级); p.add(专业1); p.add(专业); p.add(大学语文1); p.add(大学语文); p.add(大学英语1); p.add(大学英语); p.add(高等数学1); p.add(高等数学); p.add(new Label(); p.add(new Label(); p.add(b); contentPane.add(p); /添加按钮监听器 b.addActionListener(this); mf=mmf;public void actionPerformed(ActionEvent e)if (学号.getText().toString().equals()JOptionPane.showMessageDialog(null, 请输入学号, 温馨提示, JOptionPane.INFORMATION_MESSAGE);else if (姓名.getText().toString().equals()JOptionPane.showMessageDialog(null, 请输入姓名, 温馨提示, JOptionPane.INFORMATION_MESSAGE);else if (大学语文.getText().toString().equals()JOptionPane.showMessageDialog(null, 请输入大学语文, 温馨提示, JOptionPane.INFORMATION_MESSAGE);elseString sql=select * from 学生成绩表 where 学号= + 学号.getText() + ;myConnection conn=new myConnection();ResultSet rs;rs=conn.getResult(sql);try/System.out.println(rs.getRow();if (rs.next()JOptionPane.showMessageDialog(null, 此学号已经存在, 温馨提示, JOptionPane.INFORMATION_MESSAGE);/添加学生的时候,发现数据库已经有了,提示你学号已经存在,报错误信息elsesql=insert into 学生成绩表 values( +学号.getText()+,+ 姓名.getText() +,+ 性别.getText() +,+ 班级.getText() +,+ 专业.getText() +,+ 大学语文.getText() +,+ 大学英语.getText() +,+ 高等数学.getText() +);/实行数据库插入的语句if (conn.executeSql(sql)/插入语句JOptionPane.showMessageDialog(null, 添加成功, 温馨提示, JOptionPane.INFORMATION_MESSAGE);mf.freshTable(select * from 学生成绩表);学号.setText();姓名.setText();性别.setText();班级.setText();专业.setText();大学语文.setText();大学英语.setText();高等数学.setText();elseJOptionPane.showMessageDialog(null, 添加失败, 温馨提示, JOptionPane.INFORMATION_MESSAGE);/插入失败catch(Exception er)System.out.println(er.toString();class editFrame extends JDialog implements ActionListenerpublic static final int WIDTH = 400;public static final int HEIGHT = 400;JLabel 学号1,姓名1,性别1,班级1,专业1,大学语文1,大学英语1,高等数学1;JTextField 学号,姓名,性别,班级,专业,大学语文,大学英语,高等数学;JButton b;JPanel p;mainFrame mf;public editFrame(mainFrame mmf) setTitle(修改学生信息); setSize(WIDTH,HEIGHT); setLocation(120,180); Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout(); 学号1=new JLabel(学号); 姓名1=new JLabel(姓名); 性别1=new JLabel(性别); 班级1=new JLabel(班级); 专业1=new JLabel(专业); 大学语文1=new JLabel(大学语文); 大学英语1=new JLabel(大学英语); 高等数学1=new JLabel(高等数学); 学号=new JTextField(5); 姓名=new JTextField(5); 性别=new JTextField(5); 班级=new JTextField(5); 专业=new JTextField(5); 大学语文=new JTextField(5); 大学英语=new JTextField(10); 高等数学=new JTextField(10); 学号.setEnabled(false); b=new JButton(确定); p=new JPanel(); p.setLayout(new GridLayout(10,2,5,5); p.add(学号1); p.add(学号); p.add(姓名1); p.add(姓名); p.add(性别1); p.add(性别); p.add(班级1); p.add(班级); p.add(专业1); p.add(专业); p.add(大学语文1); p.add(大学语文); p.add(大学英语1); p.add(大学英语); p.add(高等数学1); p.add(高等数学); p.add(new Label(); p.add(new Label(); p.add(b); contentPane.add(p); /添加按钮监听器 b.addActionListener(this); mf=mmf;/这是画界面public void actionPerformed(ActionEvent e)if (学号.getText().toString().equals()/判断JOptionPane.showMessageDialog(null, 请输入学号, 温馨提示, JOptionPane.INFORMATION_MESSAGE);/弹出的小窗口提示else if (姓名.getText().toString().equals()JOptionPane.showMessageDialog(null, 请输入姓名, 温馨提示, JOptionPane.INFORMATION_MESSAGE);else if (大学语文.getText().toString().equals()JOptionPane.showMessageDialog(null, 请输入大学语文, 温馨提示, JOptionPane.INFORMATION_MESSAGE);elseString sql=update 学生成绩表 set 姓名=+姓名.getText()+,性别=+性别.getText()+,班级=+班级.getText()+,专业=+专业.getText()+,大学语文=+大学语文.getText()+,大学英语=+大学英语.getText()+,高等数学=+高等数学.getText()+ where 学号= + 学号.getText() + ;/数据库语句myConnection conn=new myConnection();/打开数据库的连接try/JOptionPane.showMessageDialog(null, sql, 温馨提示, JOptionPane.INFORMATION_MESSAGE);if (conn.executeSql(sql)/执行sql语句,弹出窗口,查询学生表刷新tableJOptionPane.showMessageDialog(null, 修改成功, 温馨提示, JOptionPane.INFORMATION_MESSAGE);mf.freshTable(select * from 学生成绩表);this.dispose();/关闭当前窗体对象,隐藏elseJOptionPane.showMessageDialog(null, 修改失败, 温馨提示, JOptionPane.INFORMATION_MESSAGE);catch(Exception er)er.printStackTrace();class findFrame extends JDialog implements ActionListenermainFrame mf;JPanel p;JComboBox c;JTextField t;JButton b;JButton fAll;String sql=select * from student;String colStr=学号,姓名,性别,班级,专业,大学语文,大学英语,高等数学; public findFrame(mainFrame mmf)mf=mmf;p=new JPanel();c=new JComboBox(colStr);t=new JTextField(10);b=new JButton(查找);fAll=new JButton(全部显示);b.addActionListener(this);fAll.addActionListener(this);p.add(new JLabel(选择);p.add(c);p.add(new JLabel(查找内容);p.add(t);p.add(b);p.add(fAll);this.add(p);this.setTitle(查找);this.setSize(450,80);public void actionPerformed(ActionEvent e)/查找if (e.getSource()=b)String selectStr=c.getSelectedItem().toString();if (selectStr=大学英语)sql=select * from 学生成绩表 where +selectStr+ = +t.getText().toString();elsesql=select * from 学生成绩表 where +selectStr+ = +t.getText().toString()+;mf.freshTable(sql);/全部显示if (e.getSource()=fAll)sql=select * from 学生成绩表;mf.freshTable(sql);/监听程序,选择查成绩,最后是重新刷新tableclass aboutFrame extends JDialog /关于我的信息aboutFrame()JPanel p1=new JPanel();p1.add(new JLabel(学生成绩管理系统);p1.add(new JLabel(制作者:袁天荣);p1.add(new JLabel(学院:计算机工程学院);p1.add(new JLabel(电话;p1.setLayout(new GridLayout(4,1,5,5);this.add(p1);this.setTitle(关于我);this.setSize(300,200);class userFrame extends JFrame implements ActionListener /用户密码JTextField user,pass;JButton add,del;JTable t;JPanel p1,p2,p3,p4,p5;DefaultTableModel m;public userFrame()p1=new JPanel();p2=new JPanel();p3=new JPanel();p4=new JPanel();p5=new JPanel();user=new JTextField(8);pass=new JTextField(8);add=new JButton(添加);del=new JButton(删除);String col = 用户名,密码;m= new DefaultTableModel(col,0);t=new JTable();t.setModel(m);JScrollPane sp = new JScrollPane(t);p1.add(new JLabel(用户名);p1.add(user);p1.add(new JLabel(密码);p1.add(pass);p1.add(add);p2.add(sp);p3.add(del);add.addActionListener(this);del.addActionListener(this);myConnection conn=new myConnection();ResultSet rs;rs=conn.getResult(select * from 管理员);/开始时连接数据库,查询数据,返回结果集,if (rs!=null)/把查询结果放到table里面try/m.setRowCount(0);/table.setModel(mm);while(rs.next() String 用户名 = rs.getString(用户名); String 密码 = rs.getString(密码); String cloumns =用户名,密码; m.addRow(cloumns); t.setModel(m);catch(Exception e)System.out.println(e.toString();this.add(p1,BorderLayout.NORTH);this.add(p2,BorderLayout.CENTER);this.add(p3,BorderLayout.SOUTH);this.add(p4,BorderLayout.WEST);this.add(p5,BorderLayout.EAST);this.setTitle(用户管理);this.setSize(600,400);public void actionPerformed(ActionEvent e)/用户添加if (e.getSource()=add)if (user.getText().toString().equals()JOptionPane.showMessageDialog(null, 请输入用户名, 温馨提示, JOptionPane.INFORMATION_MESSAGE);else if (pass.getText().toString().equals()JOptionPane.showMessageDialog(null, 请输入密码, 温馨提示, JOptionPane.INFORMATION_MESSAGE);elsemyConnection conn=new myConnection();ResultSet rs;tryrs=conn.getResult(select * from 管理员 where 用户名=+user.getText().toString()+);if (rs.next()JOptionPane.showMessageDialog(null, 此用户已经存在, 温馨提示, JOptionPane.INFORMATION_MESSAGE);elseif (conn.executeSql(insert into 管理员 values(+user.getText().toString()+,+pass.getText().toString()+)String newUser=user.getText(),pass.getText();m.addRow(newUser);t.setModel(m);JOptionPane.showMessageDialog(null, 添加成功, 温馨提示, JOptionPane.INFORMATION_MESSAGE);elseJOptionPane.showMessageDialog(null, 添加失败, 温馨提示, JOptionPane.INFORMATION_MESSAGE);catch(Exception er)System.out.println(er.toString();/删除else if (e.getSource()=del)if (t.getSelectedRow()=-1)JOptionPane.showMessageDialog(null, 请选择你要删除的行, 温馨提示, JOptionPane.INFORMATION_MESSAGE);elseString sql=delete from 管理员 where 用户名 = +t.getValueAt(t.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光大银行包头市青山区2025秋招半结构化面试15问及话术
- 华夏银行泉州市南安市2025秋招无领导模拟题角色攻略
- 招商银行长春市南关区2025秋招笔试创新题型专练及答案
- 日常环境安全培训课件
- 平安银行鞍山市铁东区2025秋招笔试创新题型专练及答案
- 华夏银行温州市瓯海区2025秋招群面模拟题及高分话术
- 兴业银行重庆市沙坪坝区2025秋招无领导小组面试案例库
- 光大银行温州市鹿城区2025秋招群面模拟题及高分话术
- 中信银行宁波市宁海县2025秋招群面模拟题及高分话术
- 民生银行潍坊市青州市2025秋招结构化面试经典题及参考答案
- 银行安全用电知识培训课件
- 2025鄂尔多斯市国源矿业开发有限责任公司社会招聘75人笔试参考题库附带答案详解
- 2025年解除租赁合同协议书
- 工业废水零排放技术解决方案创新创业项目商业计划书
- 黄冈市2025年高三年级9月调研考试(一模)生物试卷(含答案)
- 2025年高考英语新课标Ⅱ卷点评及2026备考方向 课件
- 2025年广东省中考语文试卷真题(含答案解析)
- 2025年学宪法、讲宪法知识竞赛题库及答案
- 可信数据空间解决方案星环科技
- 高中英语新课标3000词汇表(新高考)
- 【MOOC】《中国马克思主义与当代》(北京科技大学)中国大学MOOC慕课答案
评论
0/150
提交评论