简单学生管理信息系统源代码_第1页
简单学生管理信息系统源代码_第2页
简单学生管理信息系统源代码_第3页
简单学生管理信息系统源代码_第4页
简单学生管理信息系统源代码_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

package xsgl;import java.awt.*;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;import java.util.Vector;import javax.swing.table.*;import java.awt.event.*;public class Xsglxt extends JFrame implements ActionListener/继承JFrame 并实现接口ActionListenerJPanel mb1,mb2;JLabel bq1;JTextField wbk1;JButton an1,an2,an3,an4; JTable bg1; /定义表格对象JScrollPane gd1;Xsxx xsxx2; /定义Xsxx类的一个对象xsxx2public static void main(String args) Xsglxt xs=new Xsglxt();public Xsglxt() /XSGLXT构造方法,用于对象初始化。mb1=new JPanel();bq1=new JLabel(请输入姓名);wbk1=new JTextField(10);an1=new JButton(查询);an1.addActionListener(this); /对按钮1添加监听an1.setActionCommand(chaxun); /设置按钮1的监听信息mb1.add(bq1); mb1.add(wbk1); mb1.add(an1);mb2=new JPanel();an2=new JButton(添加);an2.addActionListener(this);an2.setActionCommand(tianjia);an3=new JButton(修改);an3.addActionListener(this);an3.setActionCommand(xiugai);an4=new JButton(删除);an4.addActionListener(this);an4.setActionCommand(shanchu);mb2.add(an2); mb2.add(an3); mb2.add(an4);xsxx2=new Xsxx();bg1=new JTable(xsxx2);gd1=new JScrollPane(bg1);this.add(gd1);this.add(mb1,North);this.add(mb2,South);this.setTitle(学生管理系统);this.setSize(500,400);this.setLocation(201,181);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);public void actionPerformed(ActionEvent e) /实现接口ActionListener中的actionPerformed抽象方法if(e.getActionCommand().equals(chaxun) /判断监听到的组件信息是不是chaxun(是不是查询按钮)String xingming=this.wbk1.getText().trim(); /将本窗口的文本框1中文本取出,忽略前后空格后赋给变量xingmingString sql=select * from xuesheng where xingming=+xingming+; /将SQL语句赋给String类型变量sqlxsxx2=new Xsxx(sql); /将String类型变量sql作为参数NEW一个Xsxx类的对象xsxx2bg1.setModel(xsxx2); /将表bg1的数据模型设为 newModel,并向其注册以获取来自新数据模型的侦听器通知。else if(e.getActionCommand().equals(tianjia)Tianjia tj=new Tianjia(this,添加学生信息,true);xsxx2=new Xsxx(); /无参数传递的NEW一个Xsxx类的对象xsxx2bg1.setModel(xsxx2);else if(e.getActionCommand().equals(xiugai)int ii=this.bg1.getSelectedRow(); /使用getSelectedRow()方法返回第一个选定行的索引;如果没有选定的行,则返回 -1。 if(ii=-1)JOptionPane.showMessageDialog(this,请选中要修改的行); /显示一个错误对话框return;new Xiugai(this,修改学生信息,true,xsxx2,ii); /NEW一个修改类对象并附上相关参数,true指定对话框在显示时是否阻塞用户向其他顶层窗口输入xsxx2=new Xsxx();bg1.setModel(xsxx2);else if(e.getActionCommand().equals(shanchu)int ii=this.bg1.getSelectedRow();if(ii=-1)JOptionPane.showMessageDialog(this,请选中要删除的行);return; String st=(String)xsxx2.getValueAt(ii,0); /使用getValueAt(ii,0)方法返回第ii行的第0字段数据并强转为字符串型数据 PreparedStatement ps=null; /定义一个PreparedStatement对象ps;SQL 语句被预编译并存储在 PreparedStatement 对象中 Connection ct=null;/定义一个Connection对象ct;用来与特定数据库的连接。 ResultSet rs=null; /定义一个ResultSet对象rs;表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。 Statement sm=null; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); /返回与带有给定字符串名的类或接口相关联的 Class 对象。 ct=DriverManager.getConnection(jdbc:odbc:123,sa,); /DriverManager:管理一组 JDBC 驱动程序的基本服务。getConnection方法试图建立到给定数据库 URL 的连接。 ps=ct.prepareStatement(delete from xuesheng where xuehao=?); /prepareStatement()方法是创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。 ps.setString(1,st); /设置prepareStatement中SQL语句中第一个?位置为st中的字符串 ps.executeUpdate(); /在此 PreparedStatement 对象中执行 SQL 语句。 catch (Exception e2) finally try if(rs!=null)rs.close(); if(ps!=null)ps.close();if(ct!=null)ct.close(); catch (Exception e3) xsxx2=new Xsxx(); bg1.setModel(xsxx2);class Xsxx extends AbstractTableModel Vector ziduan,jilu;PreparedStatement ps=null; Connection ct=null; ResultSet rs=null; public int getRowCount() / AbstractTableModel抽象类中的一个抽象方法(子类中必须实现),返回该模型中的行数。JTable 使用此方法来确定它应该显示多少行。return this.jilu.size(); public int getColumnCount() /返回该模型中的列数。JTable 使用此方法来确定在默认情况下它应该创建并显示多少列。 return this.ziduan.size();public Object getValueAt(int hang, int lie) /返回指定行和列对应位置的单元格值。return (Vector)this.jilu.get(hang).get(lie);public Xsxx()this.sqlyj(select * from xuesheng);public Xsxx(String ss)this.sqlyj(ss);public String getColumnName(int e) /返回 e 位置的列的名称.return (String)this.ziduan.get(e);public void sqlyj(String sql)ziduan=new Vector();ziduan.add(学号);ziduan.add(姓名);ziduan.add(性别);ziduan.add(年龄);ziduan.add(籍贯);ziduan.add(所在院系); jilu=new Vector();try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); ct=DriverManager.getConnection(jdbc:odbc:123,sa,); ps=ct.prepareStatement(sql); rs=ps.executeQuery(); /executeQuery()方法是在此 PreparedStatement 对象ps中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。 while(rs.next() Vector hang=new Vector();hang.add(rs.getString(1); /以 Java 编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列的值。hang.add(rs.getString(2);hang.add(rs.getString(3);hang.add(rs.getInt(4);hang.add(rs.getString(5);hang.add(rs.getString(6);jilu.add(hang); catch (Exception e) finally try if(rs!=null)rs.close(); if(ps!=null)ps.close();if(ct!=null)ct.close(); catch (Exception e) class Xiugai extends JDialog implements ActionListener /JDialog是创建对话框窗口的主要类 JLabel bq1,bq2,bq3,bq4,bq5,bq6; JTextField wbk1,wbk2,wbk3,wbk4,wbk5,wbk6; JButton an1,an2; JPanel mb1,mb2,mb3,mb4; public Xiugai(Frame fck,String ckm,Boolean msck,Xsxx xsxx2,int hang) super(fck,ckm,msck); bq1=new JLabel( 学号 ); bq2=new JLabel( 姓名 ); bq3=new JLabel( 性别 ); bq4=new JLabel( 年龄 ); bq5=new JLabel( 籍贯 ); bq6=new JLabel( 院系 ); wbk1=new JTextField(5); wbk1.setText(String)xsxx2.getValueAt(hang,0); wbk1.setEditable(false); wbk2=new JTextField(5); wbk2.setText(String)xsxx2.getValueAt(hang,1); wbk3=new JTextField(5); wbk3.setText(String)xsxx2.getValueAt(hang,2); wbk4=new JTextField(5); wbk4.setText(String)xsxx2.getValueAt(hang,3).toString(); wbk5=new JTextField(5); wbk5.setText(String)xsxx2.getValueAt(hang,4); wbk6=new JTextField(5); wbk6.setText(String)xsxx2.getValueAt(hang,5); an1=new JButton(修改); an1.addActionListener(this); an1.setActionCommand(xiugai1); an2=new JButton(取消); an2.addActionListener(this); an2.setActionCommand(quxiao); mb1=new JPanel(); mb2=new JPanel(); mb3=new JPanel(); mb4=new JPanel(); mb1.setLayout(new GridLayout(6,1); mb2.setLayout(new GridLayout(6,1); mb1.add(bq1); mb1.add(bq2); mb1.add(bq3); mb1.add(bq4); mb1.add(bq5); mb1.add(bq6); mb2.add(wbk1); mb2.add(wbk2); mb2.add(wbk3); mb2.add(wbk4); mb2.add(wbk5); mb2.add(wbk6); mb3.add(an1); mb3.add(an2); this.add(mb1,BorderLayout.WEST); this.add(mb2); this.add(mb3,BorderLayout.SOUTH); this.add(mb4,BorderLayout.EAST); this.setSize(370,270);this.setLocation(401,281);this.setResizable(false);this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);this.setVisible(true); public void actionPerformed(ActionEvent e) if(e.getActionCommand().equals(xiugai1) PreparedStatement ps=null; Connection ct=null; ResultSet rs=null; Statement sm=null; try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); ct=DriverManager.getConnection(jdbc:odbc:123,sa,);String ss=(update xuesheng set xingming=?,xingbie=?,nianling=?,jiguan=?,yuanxi=? where xuehao=?); ps=ct.prepareStatement(ss); ps.setString(1,wbk2.getText(); ps.setString(2,wbk3.getText(); ps.setString(3,wbk4.getText(); ps.setString(4,wbk5.getText(); ps.setString(5,wbk6.getText(); ps.setString(6,wbk1.getText(); ps.executeUpdate(); this.dispose(); catch (Exception e2) finally try if(rs!=null)rs.close(); if(ps!=null)ps.close();if(ct!=null)ct.close(); catch (Exception e3) else if(e.getActionCommand().equals(quxiao) this.dispose();/关闭当前窗口 class Tianjia extends JDialog implements ActionListener JLabel bq1,bq2,bq3,bq4,bq5,bq6; JTextField wbk1,wbk2,wbk3,wbk4,wbk5,wbk6; JButton an1,an2; JPanel mb1,mb2,mb3,mb4; public Tianjia(Frame fck,String ckm,Boolean msck) super(fck,ckm,msck); bq1=new JLabel( 学号 ); bq2=new JLabel( 姓名 ); bq3=new JLabel( 性别 ); bq4=new JLabel( 年龄 ); bq5=new JLabel( 籍贯 ); bq6=new JLabel( 院系 ); wbk1=new JTextField(5); wbk2=new JTextField(5); wbk3=new JTextField(5); wbk4=new JTextField(5); wbk5=new JTextField(5); wbk6=new JTextField(5); an1=new JButton(添加); an1.addActionListener(this); an1.setActionCommand(tianjia2); an2=new JButton(取消); an2.addActionListener(this); an2.setActionCommand(quxiao); mb1=new JPanel(); mb2=new JPanel(); mb3=new JPanel(); mb4=new JPanel(); mb1.setLayout(new GridLayout(6,1); mb2.setLayout(new GridLayout(6,1); mb1.add(bq1); mb1.add(bq2); mb1.add(bq3); mb1.add(bq4); mb1.add(bq5); mb1.add(bq6); mb2.add(wbk1); mb2.add(wbk2); mb2.add(wbk3); mb2.add(wbk4); mb2.add(wbk5); mb2.add(wbk6); mb3.add(an1); mb3.add(an2); this.add(mb1,BorderLayout.WEST); this.add(mb2); this.add(mb3,BorderLayout.SOUTH); this.add(mb4,BorderLayout.E

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论