java练习Mini学生管理系统model2.docx
- 文档编号:23404503
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:23
- 大小:774.38KB
java练习Mini学生管理系统model2.docx
《java练习Mini学生管理系统model2.docx》由会员分享,可在线阅读,更多相关《java练习Mini学生管理系统model2.docx(23页珍藏版)》请在冰豆网上搜索。
java练习Mini学生管理系统model2
Mini学生管理系统model2
框架图:
代码:
1.1
/**
*1.1model2,主界面
*1.2model2添加学生
*1.3model2,修改学生
*1.4model2,数据模型
*/
packagecom.test2;
importjavax.swing.*;
importjava.awt.*;
importjava.sql.*;
importjava.util.*;
importjava.awt.event.*;
publicclassStumanageextendsJFrameimplementsActionListener
{
//定义一些控件
JPaneljp1=null,jp2=null;
JLabeljl1;
JButtonjb1,jb2,jb3,jb4;
JTablejt;
JScrollPanejsp;
JTextFieldjtf;
StuModelsm;
publicstaticvoidmain(String[]args)
{
Stumanagetest3=newStumanage();
//System.out.println("guole");
}
publicStumanage()
{
jb1=newJButton("查询");
//jb1.setActionCommand("想查询");
jb1.addActionListener(this);
jb2=newJButton("添加");
jb2.addActionListener(this);
jb3=newJButton("修改");
jb3.addActionListener(this);
jb4=newJButton("删除");
jb4.addActionListener(this);
jl1=newJLabel("请输入姓名");
jtf=newJTextField(10);
jp1=newJPanel();
jp2=newJPanel();
jp1.add(jl1);
jp1.add(jtf);
jp1.add(jb1);
jp2.add(jb2);
jp2.add(jb3);
jp2.add(jb4);
//创建一个数据模型对象
sm=newStuModel();
//初始化JTable
jt=newJTable(sm);
//初始化jspJScrollPane
jsp=newJScrollPane(jt);
this.add(jp1,"North");//大小写不能瞎写啊
this.add(jp2,"South");//大小写不能瞎写啊
//把jsp放入到jframe
this.add(jsp);
this.setSize(400,300);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==jb1)
{
//System.out.println("想查询");
//对表操作
Stringname=this.jtf.getText().trim();//trim把控制字符串过滤一下
Stringsql="select*fromstuwherestuName='"+name+"'";
sm=newStuModel();
jt.setModel(sm);//重点!
!
!
}
if(e.getSource()==jb2)
{
StuAddDialogstuadddialog=newStuAddDialog(this,"添加学生",true);//必须是模式对话框!
!
!
//添加完了以后要重新获得新的数据模型
sm=newStuModel();
jt.setModel(sm);//更新对话框,注意是重点!
}
if(e.getSource()==jb3)
{
//用户希望修改
introwNums=this.jt.getSelectedRow();
if(rowNums==-1)
{
JOptionPane.showMessageDialog(this,"请选择一行");
return;
}
//显示对话框
newStuUpdDialog(this,"修改信息",true,sm,rowNums);
sm=newStuModel();
jt.setModel(sm);//更新对话框,注意是重点!
}
if(e.getSource()==jb4)
{
//说明用户希望删除对象
//得到该学生的ID
//如果没有选择就返回了-1
introwNum=this.jt.getSelectedRow();
ResultSetrs=null;
if(rowNum==-1)
{
JOptionPane.showMessageDialog(this,"请选择一行");
return;
}
Stringsql="deletefromstuwherestuId=?
";
//得到学生编号
StringstuId=sm.getValueAt(rowNum,0).toString();
Stringparas[]={stuId};
StuModelstumodel=newStuModel(sql,paras);
sm=newStuModel();
jt.setModel(sm);//更新对话框,注意是重点!
}
}
}
//-----------------------------------------
1.2
/**
*model2添加学生
*/
packagecom.test2;
importjava.awt.BorderLayout;
importjava.awt.Frame;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.Vector;
importjavax.swing.*;
publicclassStuAddDialogextendsJDialogimplementsActionListener
{
//定义需要的swing组件
JLabeljl1,jl2,jl3,jl4,jl5,jl6;
JTextFieldjt1,jt2,jt3,jt4,jt5,jt6;
JButtonjb1,jb2;
JPaneljp1,jp2,jp3;
//
publicStuAddDialog(Frameowner,Stringtitle,booleanmodel)//分别是拥有者,标题,模式(true为模式,false为非模式)
{
super(owner,title,model);//调用父类构造方法,达到模式对话框效果
jl1=newJLabel("学号");
jl2=newJLabel("姓名");
jl3=newJLabel("性别");
jl4=newJLabel("年龄");
jl5=newJLabel("籍贯");
jl6=newJLabel("系别");
jt1=newJTextField();
jt2=newJTextField();
jt3=newJTextField();
jt4=newJTextField();
jt5=newJTextField();
jt6=newJTextField();
jb1=newJButton("添加");
jb1.addActionListener(this);
jb2=newJButton("取消");
jb2.addActionListener(this);
jp1=newJPanel();
jp2=newJPanel();
jp3=newJPanel();
jp1.add(jl1);
jp1.add(jl2);
jp1.add(jl3);
jp1.add(jl4);
jp1.add(jl5);
jp1.add(jl6);
jp2.add(jt1);
jp2.add(jt2);
jp2.add(jt3);
jp2.add(jt4);
jp2.add(jt5);
jp2.add(jt6);
jp1.setLayout(newGridLayout(6,1));
jp2.setLayout(newGridLayout(6,1));
jp3.add(jb1);
jp3.add(jb2);
this.add(jp3,BorderLayout.SOUTH);
this.add(jp1,BorderLayout.WEST);
this.add(jp2,BorderLayout.CENTER);
this.setSize(300,200);
this.setVisible(true);
//this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
//this.setLocationRelativeTo(null);
}
@Override
publicvoidactionPerformed(ActionEvente)
{
//TODOAuto-generatedmethodstub
if(e.getSource()==jb1)
{
//希望添加
Stringsql="insertintostuvalues(?
?
?
?
?
?
)";
Stringparas[]={jt1.getText(),jt2.getText(),jt3.getText(),jt4.getText(),jt5.getText(),jt6.getText()};
//temp.addStu(sql,paras);
StuModeltemp=newStuModel(sql,paras);
if((temp.tmp)!
=1)
{
JOptionPane.showMessageDialog(this,"添加错误");
}
//关闭对话框
JOptionPane.showMessageDialog(this,"添加成功");
this.dispose();
}
if(e.getSource()==jb2)
{
this.dispose();
}
}
}
//--------------------------------------------------------------------------------------------------
1.3
/**
*model2,修改学生
*
*/
packagecom.test2;
importjava.awt.BorderLayout;
importjava.awt.Frame;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.Vector;
importjavax.swing.*;
publicclassStuUpdDialogextendsJDialogimplementsActionListener
{
//定义需要的swing组件
JLabeljl1,jl2,jl3,jl4,jl5,jl6;
JTextFieldjt1,jt2,jt3,jt4,jt5,jt6;
JButtonjb1,jb2;
JPaneljp1,jp2,jp3;
//
publicStuUpdDialog(Frameowner,Stringtitle,booleanmodel,StuModelsm,introwNums)
{
super(owner,title,model);//调用父类构造方法,达到模式对话框效果
jl1=newJLabel("学号");
jl2=newJLabel("姓名");
jl3=newJLabel("性别");
jl4=newJLabel("年龄");
jl5=newJLabel("籍贯");
jl6=newJLabel("系别");
jt1=newJTextField();
//初始化数据
jt1.setText((String)sm.getValueAt(rowNums,0));
//让jt1不可以修改
jt1.setEditable(false);
jt2=newJTextField();
jt2.setText((String)sm.getValueAt(rowNums,1));
jt3=newJTextField();
jt3.setText((String)sm.getValueAt(rowNums,2));
jt4=newJTextField();
jt4.setText(sm.getValueAt(rowNums,3).toString());//
jt5=newJTextField();
jt5.setText((String)sm.getValueAt(rowNums,4));
jt6=newJTextField();
jt6.setText((String)sm.getValueAt(rowNums,5));
jb1=newJButton("修改");
jb1.addActionListener(this);
jb2=newJButton("取消");
jb2.addActionListener(this);
jp1=newJPanel();
jp2=newJPanel();
jp3=newJPanel();
jp1.add(jl1);
jp1.add(jl2);
jp1.add(jl3);
jp1.add(jl4);
jp1.add(jl5);
jp1.add(jl6);
jp2.add(jt1);
jp2.add(jt2);
jp2.add(jt3);
jp2.add(jt4);
jp2.add(jt5);
jp2.add(jt6);
jp1.setLayout(newGridLayout(6,1));
jp2.setLayout(newGridLayout(6,1));
jp3.add(jb1);
jp3.add(jb2);
this.add(jp3,BorderLayout.SOUTH);
this.add(jp1,BorderLayout.WEST);
this.add(jp2,BorderLayout.CENTER);
this.setSize(300,200);
this.setVisible(true);
}
@Override
publicvoidactionPerformed(ActionEvente)
{
//TODOAuto-generatedmethodstub
if(e.getSource()==jb1)
{
Stringsql="updatestusetstuName=?
stuSex=?
stuAge=?
stuJp=?
stuDept=?
wherestuId=?
";
Stringparas[]={jt2.getText(),jt3.getText(),jt4.getText(),jt5.getText(),jt6.getText(),jt1.getText()};
StuModelstumodel=newStuModel(sql,paras);
JOptionPane.showMessageDialog(this,"修改成功");
this.dispose();//关闭框子
}
if(e.getSource()==jb2)
{
this.dispose();
}
}
}
//--------------------------------------------------------------------
1.4
/**
*model2,数据模型
*
*/
packagecom.test2;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.Vector;
importjavax.swing.table.AbstractTableModel;
publicclassStuModelextendsAbstractTableModel
{
VectorrowData,columnNames;
Connectionct=null;
PreparedStatementps=null;
ResultSetrs=null;
//Stringurl="jdbc:
microsoft:
sqlserver:
//127.0.0.1:
1433;databaseName=spdb1";
Stringurl="jdbc:
sqlserver:
//127.0.0.1:
1433;databaseName=spdb01";
Stringuser="sa";
Stringpasswd="root";
//Stringdriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
Stringdriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
inttmp;
publicbooleanaddStu(Stringsql,Stringparas[])
{
//根据用户输入的sql语句完成添加任务
booleanb=true;
//加载驱动
try
{
//1.加载驱动
Class.forName(driver);
//2.得到连接
ct=DriverManager.getConnection(url,user,passwd);
//3.创建ps
if(sql.equals("")||sql.equals("select*fromstuwherestuName=''"))
{
sql="select*fromstu";
ps=ct.prepareStatement(sql);
rs=ps.executeQuery();
columnNames=newVector();
//设置列名
columnNames.add("学号");
columnNames.add("姓名");
columnNames.add("性别");
columnNames.add("年龄");
columnNames.add("籍贯");
columnNames.add("系别");
rowData=newVector();
while(rs.next())
{
Vectorhang=newVector();
hang.add(rs.getString
(1));
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));
//加入到rowData
rowData.add(hang);//通过循环将很多的行加入到了rowData中去
}
}
else
{
ps=ct.prepareStatement(sql);//
//给ps的问号赋值
for(inti=0;i { ps.setString(i+1,paras[i]); } //4.执行操作 tmp=ps.executeUpdate();//实施 //this.dispose();//关闭框子 if(tmp! =1) { b=false; } } } catch(Exceptione1) { b=false; e1.printStackTrace(); } finally { try { if(rs! =null)rs.cl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 练习 Mini 学生 管理 系统 model2