简单学生管理信息系统源代码.docx
- 文档编号:30596630
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:19
- 大小:20.24KB
简单学生管理信息系统源代码.docx
《简单学生管理信息系统源代码.docx》由会员分享,可在线阅读,更多相关《简单学生管理信息系统源代码.docx(19页珍藏版)》请在冰豆网上搜索。
简单学生管理信息系统源代码
packagexsgl;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.*;
importjava.util.*;
importjavax.swing.*;
importjava.util.Vector;
importjavax.swing.table.*;
importjava.awt.event.*;
publicclassXsglxtextendsJFrameimplementsActionListener//继承JFrame并实现接口ActionListener
{
JPanelmb1,mb2;
JLabelbq1;
JTextFieldwbk1;
JButtonan1,an2,an3,an4;
JTablebg1;//定义表格对象
JScrollPanegd1;
Xsxxxsxx2;//定义Xsxx类的一个对象xsxx2
publicstaticvoidmain(String[]args)
{
Xsglxtxs=newXsglxt();
}
publicXsglxt()//XSGLXT构造方法,用于对象初始化。
{
mb1=newJPanel();
bq1=newJLabel("请输入姓名");
wbk1=newJTextField(10);
an1=newJButton("查询");
an1.addActionListener(this);//对按钮1添加监听
an1.setActionCommand("chaxun");//设置按钮1的监听信息
mb1.add(bq1);mb1.add(wbk1);mb1.add(an1);
mb2=newJPanel();
an2=newJButton("添加");
an2.addActionListener(this);
an2.setActionCommand("tianjia");
an3=newJButton("修改");
an3.addActionListener(this);
an3.setActionCommand("xiugai");
an4=newJButton("删除");
an4.addActionListener(this);
an4.setActionCommand("shanchu");
mb2.add(an2);mb2.add(an3);mb2.add(an4);
xsxx2=newXsxx();
bg1=newJTable(xsxx2);
gd1=newJScrollPane(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);
}
publicvoidactionPerformed(ActionEvente)//实现接口ActionListener中的actionPerformed抽象方法
{
if(e.getActionCommand().equals("chaxun"))//判断监听到的组件信息是不是"chaxun"(是不是查询按钮)
{
Stringxingming=this.wbk1.getText().trim();
//将本窗口的文本框1中文本取出,忽略前后空格后赋给变量xingming
Stringsql="select*fromxueshengwherexingming='"+xingming+"'";
//将SQL语句赋给String类型变量sql
xsxx2=newXsxx(sql);//将String类型变量sql作为参数NEW一个Xsxx类的对象xsxx2
bg1.setModel(xsxx2);
//将表bg1的数据模型设为newModel,并向其注册以获取来自新数据模型的侦听器通知。
}
elseif(e.getActionCommand().equals("tianjia"))
{
Tianjiatj=newTianjia(this,"添加学生信息",true);
xsxx2=newXsxx();//无参数传递的NEW一个Xsxx类的对象xsxx2
bg1.setModel(xsxx2);
}
elseif(e.getActionCommand().equals("xiugai"))
{
intii=this.bg1.getSelectedRow();
//使用getSelectedRow()方法返回第一个选定行的索引;如果没有选定的行,则返回-1。
if(ii==-1)
{
JOptionPane.showMessageDialog(this,"请选中要修改的行");//显示一个错误对话框
return;
}
newXiugai(this,"修改学生信息",true,xsxx2,ii);
//NEW一个修改类对象并附上相关参数,true指定对话框在显示时是否阻塞用户向其他顶层窗口输入
xsxx2=newXsxx();
bg1.setModel(xsxx2);
}
elseif(e.getActionCommand().equals("shanchu"))
{
intii=this.bg1.getSelectedRow();
if(ii==-1)
{
JOptionPane.showMessageDialog(this,"请选中要删除的行");
return;
}
Stringst=(String)xsxx2.getValueAt(ii,0);
//使用getValueAt(ii,0)方法返回第ii行的第0字段数据并强转为字符串型数据
PreparedStatementps=null;
//定义一个PreparedStatement对象ps;SQL语句被预编译并存储在PreparedStatement对象中
Connectionct=null;
//定义一个Connection对象ct;用来与特定数据库的连接。
ResultSetrs=null;
//定义一个ResultSet对象rs;表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
Statementsm=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//返回与带有给定字符串名的类或接口相关联的Class对象。
ct=DriverManager.getConnection("jdbc:
odbc:
123","sa","123456");
//DriverManager:
管理一组JDBC驱动程序的基本服务。
getConnection方法试图建立到给定数据库URL的连接。
ps=ct.prepareStatement("deletefromxueshengwherexuehao=?
");
//prepareStatement()方法是创建一个PreparedStatement对象来将参数化的SQL语句发送到数据库。
ps.setString(1,st);
//设置prepareStatement中SQL语句中第一个?
位置为st中的字符串
ps.executeUpdate();
//在此PreparedStatement对象中执行SQL语句。
}catch(Exceptione2){}
finally
{
try{
if(rs!
=null)
{
rs.close();
}
if(ps!
=null)
{
ps.close();
}
if(ct!
=null)
{
ct.close();
}
}catch(Exceptione3){}
}
xsxx2=newXsxx();
bg1.setModel(xsxx2);
}
}
}
classXsxxextendsAbstractTableModel
{
Vectorziduan,jilu;
PreparedStatementps=null;
Connectionct=null;
ResultSetrs=null;
publicintgetRowCount()
//AbstractTableModel抽象类中的一个抽象方法(子类中必须实现),返回该模型中的行数。
JTable使用此方法来确定它应该显示多少行。
{
returnthis.jilu.size();
}
publicintgetColumnCount()//返回该模型中的列数。
JTable使用此方法来确定在默认情况下它应该创建并显示多少列。
{
returnthis.ziduan.size();
}
publicObjectgetValueAt(inthang,intlie)//返回指定行和列对应位置的单元格值。
{
return((Vector)this.jilu.get(hang)).get(lie);
}
publicXsxx()
{
this.sqlyj("select*fromxuesheng");
}
publicXsxx(Stringss)
{
this.sqlyj(ss);
}
publicStringgetColumnName(inte)//返回e位置的列的名称.
{
return(String)this.ziduan.get(e);
}
publicvoidsqlyj(Stringsql)
{
ziduan=newVector();
ziduan.add("学号");
ziduan.add("姓名");
ziduan.add("性别");
ziduan.add("年龄");
ziduan.add("籍贯");
ziduan.add("所在院系");
jilu=newVector();
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ct=DriverManager.getConnection("jdbc:
odbc:
123","sa","123456");
ps=ct.prepareStatement(sql);
rs=ps.executeQuery();
//executeQuery()方法是在此PreparedStatement对象ps中执行SQL查询,并返回该查询生成的ResultSet对象。
while(rs.next())
{
Vectorhang=newVector();
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(Exceptione){}
finally
{
try{
if(rs!
=null)
{
rs.close();
}
if(ps!
=null)
{
ps.close();
}
if(ct!
=null)
{
ct.close();
}
}catch(Exceptione){}
}
}
}
classXiugaiextendsJDialogimplementsActionListener//JDialog是创建对话框窗口的主要类
{
JLabelbq1,bq2,bq3,bq4,bq5,bq6;
JTextFieldwbk1,wbk2,wbk3,wbk4,wbk5,wbk6;
JButtonan1,an2;
JPanelmb1,mb2,mb3,mb4;
publicXiugai(Framefck,Stringckm,Booleanmsck,Xsxxxsxx2,inthang)
{
super(fck,ckm,msck);
bq1=newJLabel("学号");
bq2=newJLabel("姓名");
bq3=newJLabel("性别");
bq4=newJLabel("年龄");
bq5=newJLabel("籍贯");
bq6=newJLabel("院系");
wbk1=newJTextField(5);
wbk1.setText((String)xsxx2.getValueAt(hang,0));
wbk1.setEditable(false);
wbk2=newJTextField(5);
wbk2.setText((String)xsxx2.getValueAt(hang,1));
wbk3=newJTextField(5);
wbk3.setText((String)xsxx2.getValueAt(hang,2));
wbk4=newJTextField(5);
wbk4.setText((String)xsxx2.getValueAt(hang,3).toString());
wbk5=newJTextField(5);
wbk5.setText((String)xsxx2.getValueAt(hang,4));
wbk6=newJTextField(5);
wbk6.setText((String)xsxx2.getValueAt(hang,5));
an1=newJButton("修改");
an1.addActionListener(this);
an1.setActionCommand("xiugai1");
an2=newJButton("取消");
an2.addActionListener(this);
an2.setActionCommand("quxiao");
mb1=newJPanel();
mb2=newJPanel();
mb3=newJPanel();
mb4=newJPanel();
mb1.setLayout(newGridLayout(6,1));
mb2.setLayout(newGridLayout(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);
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getActionCommand().equals("xiugai1"))
{
PreparedStatementps=null;
Connectionct=null;
ResultSetrs=null;
Statementsm=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ct=DriverManager.getConnection("jdbc:
odbc:
123","sa","123456");
Stringss=("updatexueshengsetxingming=?
xingbie=?
nianling=?
jiguan=?
yuanxi=?
wherexuehao=?
");
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(Exceptione2){}
finally
{
try{
if(rs!
=null)
{
rs.close();
}
if(ps!
=null)
{
ps.close();
}
if(ct!
=null)
{
ct.close();
}
}catch(Exceptione3){}
}
}
elseif(e.getActionCommand().equals("quxiao"))
{
this.dispose();//关闭当前窗口
}
}
}
classTianjiaextendsJDialogimplementsActionListener
{
JLabelbq1,bq2,bq3,bq4,bq5,bq6;
JTextFieldwbk1,wbk2,wbk3,wbk4,wbk5,wbk6;
JButtonan1,an2;
JPanelmb1,mb2,mb3,mb4;
publicTianjia(Framefck,Stringckm,Booleanmsck)
{
super(fck,ckm,msck);
bq1=newJLabel("学号");
bq2=newJLabel("姓名");
bq3=newJLabel("性别");
bq4=newJLabel("年龄");
bq5=newJLabel("籍贯");
bq6=newJLabel("院系");
wbk1=newJTextField(5);
wbk2=newJTextField(5);
wbk3=newJTextField(5);
wbk4=newJTextField(5);
wbk5=newJTextField(5);
wbk6=newJTextField(5);
an1=newJButton("添加");
an1.addActionListener(this);
an1.setActionCommand("tianjia2");
an2=newJButton("取消");
an2.addActionListener(this);
an2.setActionCommand("quxiao");
mb1=newJPanel();
mb2=newJPanel();
mb3=newJPanel();
mb4=newJPanel();
mb1.setLayout(newGridLayout(6,1));
mb2.setLayout(newGridLayout(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(m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 学生 管理信息系统 源代码