学生管理系统韩顺平java.docx
《学生管理系统韩顺平java.docx》由会员分享,可在线阅读,更多相关《学生管理系统韩顺平java.docx(16页珍藏版)》请在冰豆网上搜索。
学生管理系统韩顺平java
/**
*功能:
简易学生管理系统
*1.能过姓名查询;
*2.增.删.改学生信息
*
*/
packagecom.sutmanage.version2;
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.MouseEvent;
importjava.awt.event.MouseListener;
importjava.util.*;
importjavax.swing.*;
importcom.mysql.jdbc.PreparedStatement;
importjava.sql.*;
publicclassStuManageSystemVersion1extendsJFrameimplementsActionListener{
//定义组件,界面由三部分组成,上部是姓名查询部分,为一个JPanel,中间是一个JScorllPane,底部也是一个JPanel,放了三个按钮
JPaneltop,bottom;
JScrollPanejsp;
JTablejt;
JButtonsearch,add,delete,update;
JLabelname;
JTextFieldjtf;
StuModelsm=null;
publicStuManageSystemVersion1(){
//创建组件
//Top组件
top=newJPanel();
name=newJLabel("请输入姓名");
jtf=newJTextField(22);
search=newJButton("查询");
search.addActionListener(this);
top.add(name);
top.add(jtf);
top.add(search);
sm=newStuModel();
sm.queryStu("select*fromstus",null);
jt=newJTable(sm);
jt.setSelectionBackground(Color.RED);
jsp=newJScrollPane(jt);
//底部组件
bottom=newJPanel();
add=newJButton("增加");
add.addActionListener(this);
delete=newJButton("删除");
delete.addActionListener(this);
update=newJButton("修改");
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("学生管理系统");
intw=Toolkit.getDefaultToolkit().getScreenSize().width;
inth=Toolkit.getDefaultToolkit().getScreenSize().height;
this.setLocation(w/2-200,h/2-150);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
newStuManageSystemVersion1();
}
//更新数据模型
publicvoidupdStuModel(){
sm=newStuModel();
sm.queryStu("select*fromstus",null);
jt.setModel(sm);
}
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
if(e.getSource()==search){
Strings=jtf.getText().trim();
Stringname[]={s};
Stringsql="";
if(s.length()!
=0){
sql="select*fromStuswhereStuName=?
";
}elseif(s.length()==0){
sql="select*fromStus";
name=null;
}
sm=newStuModel();
sm.queryStu(sql,name);
jt.setModel(sm);
jtf.setText("");
}
elseif(e.getSource()==add){
Booleanflag=true;
while(flag){
AddNewStuans=newAddNewStu(this,"添加新学生",true);
//更新数据模型
this.updStuModel();
//确认是否添加新的学生
inti=JOptionPane.showConfirmDialog(this,"是否继续添加学生?
","",JOptionPane.YES_NO_OPTION);
if(i==JOptionPane.NO_OPTION){
flag=false;
}
}
}
elseif(e.getSource()==delete){
if(jt.getSelectedRow()==-1){
JOptionPane.showMessageDialog(this,"请先选择一行数据");
return;
}else{
intselectID=jt.getSelectedRow();
StringstuID[]={jt.getValueAt(selectID,0).toString()};
Stringsql="deletefromstuswherestuID=?
";
sm=newStuModel();
sm.updStu(sql,stuID);
//更新数据模型
this.updStuModel();
}
}
elseif(e.getSource()==update){
if(jt.getSelectedRow()==-1){
JOptionPane.showMessageDialog(this,"请先选择一行数据");
return;
}else{
intid=jt.getSelectedRow();
sm=newStuModel();
sm.queryStu("select*fromstus",null);
UpdateStuus=newUpdateStu(this,"修改学生信息",true,sm,id);
//更新数据模型
this.updStuModel();
}
}
}
}
/**
*这是我的一个Stu表的模型
*
*/
packagecom.sutmanage.version2;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.Vector;
importjavax.swing.table.AbstractTableModel;
importcom.mysql.fabric.xmlrpc.base.Array;
publicclassStuModelextendsAbstractTableModel{
ResultSetrs;
Vectorcloumn;
Vectorrow;
SqlHelpersh;
//查询数据
publicvoidqueryStu(Stringsql,String[]args){
//中间的显示组件
cloumn=newVector();
cloumn.add("学生ID");
cloumn.add("姓名");
cloumn.add("年龄");
cloumn.add("性别");
cloumn.add("系别");
row=newVector();
sh=newSqlHelper();
rs=sh.query(sql,args);
try{
while(rs.next()){
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(Exceptione){
//TODO:
handleexception
}
sh.close();
}
//增.删.改操作
publicbooleanupdStu(Stringsql,String[]args){
sh=newSqlHelper();
returnsh.updSQL(sql,args);
}
@Override
//得到共有多少列
publicintgetColumnCount(){
//TODOAuto-generatedmethodstub
returnthis.cloumn.size();
}
@Override
//得到共有多少行
publicintgetRowCount(){
//TODOAuto-generatedmethodstub
returnthis.row.size();
}
@Override
//得到某行某列的值
publicObjectgetValueAt(introwIndex,intcolumnIndex){
//TODOAuto-generatedmethodstub
returnthis.row.get(rowIndex).get(columnIndex);
}
@Override
publicStringgetColumnName(intindex){
//TODOAuto-generatedmethodstub
returnthis.cloumn.get(index);
}
}
packagecom.sutmanage.version2;
importjava.awt.BorderLayout;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.*;
publicclassAddNewStuextendsJDialogimplementsActionListener{
//定义swing组件
JPaneltop,bottom,left;
JLabelstuID,stuName,stuAge,stuSex,stuDepart;
JTextFieldid,name,age,sex,depart;
JButtonsave,cancel;
StuModelsm=null;
//构造函数
publicAddNewStu(JFrameowner,Stringtitle,booleanmodal){
super(owner,title,modal);
//创建组件
top=newJPanel(newGridLayout(5,1));
left=newJPanel(newGridLayout(5,1));
stuID=newJLabel("学生ID",JLabel.CENTER);
stuName=newJLabel("姓名",JLabel.CENTER);
stuAge=newJLabel("年龄",JLabel.CENTER);
stuSex=newJLabel("性别",JLabel.CENTER);
stuDepart=newJLabel("系别",JLabel.CENTER);
id=newJTextField(15);
name=newJTextField(15);
age=newJTextField(15);
sex=newJTextField(15);
depart=newJTextField(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=newJPanel();
save=newJButton("保存");
save.addActionListener(this);
cancel=newJButton("取消");
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);
}
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
if(e.getSource()==save){
Stringvalues[]={id.getText().trim(),name.getText().trim(),
age.getText().trim(),sex.getText().trim(),
depart.getText().trim()};
Stringsql="insertintostusvalues(?
?
?
?
?
)";
sm=newStuModel();
sm.updStu(sql,values);
this.dispose();
}
elseif(e.getSource()==cancel){
this.dispose();
}
}
}
packagecom.sutmanage.version2;
importjava.awt.BorderLayout;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JDialog;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
publicclassUpdateStuextendsJDialogimplementsActionListener{
//定义swing组件
JPaneltop,bottom,left;
JLabelstuID,stuName,stuAge,stuSex,stuDepart;
JTextFieldid,name,age,sex,depart;
JButtonsave,cancel;
StuModelsm=null;
Stringvalues[];
//构造函数
publicUpdateStu(JFrameowner,Stringtitle,booleanmodal,StuModelsm,
intidValue){
super(owner,title,modal);
//创建组件
top=newJPanel(newGridLayout(5,1));
left=newJPanel(newGridLayout(5,1));
stuID=newJLabel("学生ID",JLabel.CENTER);
stuName=newJLabel("姓名",JLabel.CENTER);
stuAge=newJLabel("年龄",JLabel.CENTER);
stuSex=newJLabel("性别",JLabel.CENTER);
stuDepart=newJLabel("系别",JLabel.CENTER);
id=newJTextField(15);
id.setText(sm.getValueAt(idValue,0).toString());
id.setEditable(false);
name=newJTextField(15);
name.setText(sm.getValueAt(idValue,1).toString());
age=newJTextField(15);
age.setText(sm.getValueAt(idValue,2).toString());
sex=newJTextField(15);
sex.setText(sm.getValueAt(idValue,3).toString());
depart=newJTextField(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=newJPanel();
save=newJButton("保存");
save.addActionListener(this);
cancel=newJButton("取消");
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);
}
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
if(e.getSource()==save){
Stringvalues[]={name.getText().trim(),age.getText().trim(),
sex.getText().trim(),depart.getText().trim(),
id.getTex