![java课程设计班级通讯录设计报告大学论文_第1页](http://file4.renrendoc.com/view/9e65c14ee0d763776632181a868df9e6/9e65c14ee0d763776632181a868df9e61.gif)
![java课程设计班级通讯录设计报告大学论文_第2页](http://file4.renrendoc.com/view/9e65c14ee0d763776632181a868df9e6/9e65c14ee0d763776632181a868df9e62.gif)
![java课程设计班级通讯录设计报告大学论文_第3页](http://file4.renrendoc.com/view/9e65c14ee0d763776632181a868df9e6/9e65c14ee0d763776632181a868df9e63.gif)
![java课程设计班级通讯录设计报告大学论文_第4页](http://file4.renrendoc.com/view/9e65c14ee0d763776632181a868df9e6/9e65c14ee0d763776632181a868df9e64.gif)
![java课程设计班级通讯录设计报告大学论文_第5页](http://file4.renrendoc.com/view/9e65c14ee0d763776632181a868df9e6/9e65c14ee0d763776632181a868df9e65.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机学院《面向对象程序设计》课程设计报告PAGE1学号xx学年第xx学年第x学期 2学期《面向对象程序设计》课程设计报告题目:班级通讯录专业:x班级:xx姓名:xxxxxxx指导教师:xxxxxxxxxxx成绩:xx20xx年xx月xx日目录TOC\o"1-3"\u1. 设计任务与要求 11.1. 设计任务与要求 11.2. 选题目的与意义 12. 需求分析 12.1. 用户需求分析 12.2. 开发环境分析 23. 系统设计 23.1. 系统总体设计 23.2. 功能模块设计 33.3. 类的设计 33.4. 数据库设计 284. 设计体会 285. 主要参考文献 29计算机学院《面向对象程序设计》课程设计报告设计任务与要求设计任务与要求制作一个简单的通讯簿,要求可对朋友的姓名、性别、手机号码、寝室号和QQ号等信息保存、查询、修改和删除等功能。具有友好界面,且需要用户名和密码登陆进入系统。使用数据库作为后台连接。选题目的与意义如今生活节奏日益加快,各种联系人也不短增多,但是很多人还是单纯的使用手机或纸质电话本来记录联系人的信息,这些记录的方式存在很多缺点,如:信息量少,查找不方便;容易丢失;存储照片不方便;安全性不高,隐私性不高……这个通讯簿,可以帮助用户更好的存储朋友的相关信息,易于添加、修改,存储和使用都很方便。同时这个系统需要登陆才能进入,提高了通讯簿的安全性和隐私性。通过实现通讯薄功能的实际编程了解基于Swing的图形用户界面开发和数据库操作原理,提高Swing和JDBC技术结合的综合运用能力。需求分析用户需求分析通讯簿的目的在于帮助用户实现轻松管理联系人的需求。为了用户通讯录的隐私性和安全性,通讯簿进入前需要进行系统登录,对用户的帐号和密码进行合法性验证,登录成功则进入系统功能界面。该通讯录有已知的帐号和密码,登录时输入帐号和密码即可登录,如果帐号和密码不对会出现提示信息,如果三次输入错误,则系统会自动退出,“清空”按钮可清空用户输入的信息。通讯簿的主系统主要功能包括实现添加、修改、删除、查询联系人的姓名、手机号码等信息,并且连接进数据库,将信息存储进数据库文件中去。程序的文本框中可以显示姓名、手机号码等联系人信息,通过通讯簿轻松实现联系人的增、删、改、查需求。个人通讯簿主系统由四大模块组成:新建联系人、修改联系人、删除联系人、查询联系人,其功能如下:1.新建联系人:用来增加联系人,并且将其信息存入系统数据库。信息如:姓名、手机号码、寝室号、性别、qq等。2.修改联系人即编辑联系人,用来对数据库中已有的联系人信息进行编辑,将更新后的信息重新写入到系统数据库。3.删除联系人用来删除联系人及其相关信息。4.查询联系人用来根据信息内容,查询该信息联系人姓名及其他相关信息。开发环境分析系统编程基于JAVASwing的图形用户界面开发,数据信息连接后台为MySql数据库。系统运行环境为运行Windows,具有JDK1.7以上Java编译环境和Eclipse3.0以上Java编辑环境,NavicatforMySQL。系统设计系统总体设计进入系统后必须先进行登陆。登陆成功后,即可进入通讯簿主界面。在主界面可以进行联系人的添加和查找。在查看联系人界面中,可以选择修改信息或删除联系人。系统总体设计图如下:图SEQ图\*ARABIC图SEQ图\*ARABIC1系统总体设计图班级通讯录联系人管理登录添加联系人修改联系人查看联系人删除联系人功能模块设计为了保证通讯簿的隐私性和安全性,进入系统后必须先进行登陆。 登陆成功后,即可进入通讯簿主界面。在主界面可以进行联系人的添加和查找。单击“操作”菜单“添加”命令,界面会切换到联系人信息输入的界面。按照需求录入联系人信息即可单击“提交”按钮保存该联系人。如果要进行联系人信息的修改或者删除该联系人,单击“操作”菜单“修改”命令与“操作”菜单“删除”命令即可。可通过“操作”菜单“查询”命令打开一个窗口,以键入联系人姓名进行联系人的查找,输入相关信息后单击“确定”按钮即可,即可弹出一个窗口查看联系人信息。类的设计由于系统需要链接数据库,所以先设计一个类进行数据库的连接。数据库为NavicatforMySQL版本。该类名称为DButil,是数据库操作类。该类中的属性、方法如下:publicclassDbUtil{ privatestaticStringurl="jdbc:mysql://localhost:3306/tongxunlu?useUnicode=true&characterEncoding=GBK"; privatestaticStringdbName="root"; privatestaticStringdbPassword="123"; publicstaticStringdriver="com.mysql.jdbc.Driver"; publicstaticConnectiongetConn()throwsException{ Class.forName(driver); Connectionconn=DriverManager.getConnection(url,dbName,dbPassword); returnconn; } publicstaticvoidclose(Statementstmt,Connectionconn)throwsException{ if(stmt!=null){ stmt.close(); if(conn!=null){ conn.close(); } } }}设计一个DaoStudent类用于完成联系人查找、添加、修改与删除操作,具体代码如下:publicclassDaoStudent{ publicstaticintinsertInfo(Connectionconn,Studentstudent)throwsException{ //插入数据 conn=DbUtil.getConn(); Stringsql="insertintomyclass(gender,name,telephone,qq,room)values(?,?,?,?,?)"; PreparedStatementstat=conn.prepareStatement(sql); stat.setString(1,student.getGender()); stat.setString(2,student.getName()); stat.setString(3,student.getTelephone()); stat.setString(4,student.getQq()); stat.setString(5,student.getRoom()); inti=stat.executeUpdate(); returni; } publicstaticinteditInfo(Connectionconn,Studentstudent)throwsException{//修改数据 conn=DbUtil.getConn(); Stringsql="updatemyclasssetgender=?,name=?,telephone=?,qq=?,room=?whereid=?"; PreparedStatementstat=conn.prepareStatement(sql); stat.setString(1,student.getGender()); stat.setString(2,student.getName()); stat.setString(3,student.getTelephone()); stat.setString(4,student.getQq()); stat.setString(5,student.getRoom()); stat.setInt(6,student.getId()); inti=stat.executeUpdate(); returni; } publicstaticResultSetfindInfo(Connectionconn,Studentstudent)throwsException{//查询数据 conn=DbUtil.getConn(); Stringsql="select*frommyclasswherename=?"; PreparedStatementstat=conn.prepareStatement(sql); stat.setString(1,student.getName()); ResultSetrs=stat.executeQuery(); returnrs; } publicstaticintdelInfo(Connectionconn,Studentstudent)throwsException{//删除数据 conn=DbUtil.getConn(); Stringsql="deletefrommyclasswherename=?"; PreparedStatementstat=conn.prepareStatement(sql); stat.setString(1,student.getName()); inti=stat.executeUpdate(); returni; }}设计一个类Student类用于设置联系人的姓名、性别、寝室号、联系方式与QQ号,并且有单独的方法返回或设置这些值。packagedao;publicclassStudent{ privateStringxuehao,name,telephone,room,qq; privateintid; privateStringgender; publicStudent(){ super(); } publicStudent(Stringname){ super(); =name; } publicStudent(Stringxuehao,Stringname,Stringtelephone,Stringroom, Stringqq,intid,Stringgender){ super(); this.xuehao=xuehao; =name; this.telephone=telephone; this.room=room; this.qq=qq; this.id=id; this.gender=gender; } publicStringgetXuehao(){ returnxuehao; } publicvoidsetXuehao(Stringxuehao){ this.xuehao=xuehao; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; } publicStringgetTelephone(){ returntelephone; } publicvoidsetTelephone(Stringtelephone){ this.telephone=telephone; } publicStringgetRoom(){ returnroom; } publicvoidsetRoom(Stringroom){ this.room=room; } publicStringgetQq(){ returnqq; } publicvoidsetQq(Stringqq){ this.qq=qq; } publicintgetId(){ returnid; } publicvoidsetId(intid){ this.id=id; } publicStringgetGender(){ returngender; } publicvoidsetGender(Stringgender){ this.gender=gender; }}设计一个类Login来完成登陆界面及其功能,若三次输入错误,会提示相应信息并退出程序,单击“登录”按钮可登录,单击“清空”按钮撤销用户的输入。这个类实现了用户登陆其属性和方法如下:publicclassLoginextendsJFrameimplementsActionListener{ Login(){ …… } publicvoidactionPerformed(ActionEvente){ if(e.getSource()==jtxtName){ jtxtPassword.requestFocus(); }elseif(e.getSource()==jtxtPassword){ jbArray[0].requestFocus(); }elseif(e.getSource()==jbArray[1]){ jlArray[2].setText(""); jtxtName.setText(""); jtxtPassword.setText(""); jtxtName.requestFocus(); }else{ if(jtxtName.getText().equals("")&&newString(jtxtPassword.getPassword()).equals("")){ JOptionPane.showMessageDialog(this,"用户名和密码不能为空!","消息对话框",JOptionPane.INFORMATION_MESSAGE); }elseif(jtxtName.getText().equals("")){ JOptionPane.showMessageDialog(this,"用户名不能为空!","消息对话框",JOptionPane.INFORMATION_MESSAGE); }elseif(newString(jtxtPassword.getPassword()).equals("")){ JOptionPane.showMessageDialog(this,"密码不能为空!","消息对话框",JOptionPane.INFORMATION_MESSAGE); }elseif(jtxtName.getText().equals("tianxiaoying")&&String.valueOf(jtxtPassword.getPassword()).equals("123456")){ this.dispose();newBjtxyShouYe(); }else{//登录失败 count++; if(count==3){ JOptionPane.showMessageDialog(this,"非法用户,系统将自动退出!","消息对话框",JOptionPane.INFORMATION_MESSAGE); System.exit(0); }elseif(count<3){ if(!jtxtName.getText().equals("tianxiaoying")&&String.valueOf(jtxtPassword.getPassword()).equals("123456")){ JOptionPane.showMessageDialog(this,"用户名错误,你还有"+(3-count)+"次机会!","消息对话框",JOptionPane.INFORMATION_MESSAGE); }elseif(!String.valueOf(jtxtPassword.getPassword()).equals("123456")&&jtxtName.getText().equals("tianxiaoying")){ JOptionPane.showMessageDialog(this,"密码错误,你还有"+(3-count)+"次机会!","消息对话框",JOptionPane.INFORMATION_MESSAGE); }else{ JOptionPane.showMessageDialog(this,"用户名和密码均错误,你还有"+(3-count)+"次机会!","消息对话框",JOptionPane.INFORMATION_MESSAGE); } jlArray[2].setText(""); jtxtName.setText(""); jtxtPassword.setText(""); jtxtName.requestFocus(); } } } } publicstaticvoidmain(String[]args){ newLogin(); }}设计一个BjtxyShouYe类显示主页面,里有一个操作菜单,该菜单里有相应的命令添加、修改、查询、删除与退出,单击相应的命令打开相应的页面,分别完成相应功能,单击“退出”命令退出程序,界面设计与代码如下:publicclassBjtxyShouYeextendsJFrame{ privateJLabellbl; privateJMenuopen; privateJMenuBarmb; privateJMenuItemsearch,add,delete,edit,exit,look; publicBjtxyShouYe(){ super("班级通讯录"); Containerc=getContentPane(); mb=newJMenuBar(); open=newJMenu("操作"); search=newJMenuItem("查询"); add=newJMenuItem("添加"); delete=newJMenuItem("删除"); edit=newJMenuItem("修改"); exit=newJMenuItem("退出"); open.addActionListener(newHandLer()); search.addActionListener(newHandLer()); add.addActionListener(newHandLer()); delete.addActionListener(newHandLer()); edit.addActionListener(newHandLer()); exit.addActionListener(newHandLer()); //添加菜单项 open.add(search); open.add(add); open.add(delete); open.add(edit); //在菜单中添加分隔条 open.addSeparator(); open.add(exit); mb.add(open); setJMenuBar(mb);//设置菜单栏 Imageicon=Toolkit.getDefaultToolkit().getImage("res\\1123.jpg"); this.setIconImage(icon); setLocationRelativeTo(null);//设置窗口显示在屏幕中央 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();//获取当前屏幕大小 this.setBounds((screenSize.width-400)/2,(screenSize.height-400)/2,400,400); this.setVisible(true); } classHandLerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ JMenuItemmi=(JMenuItem)e.getSource(); if(mi==search){ dispose(); try{ newSearchClass(); }catch(SQLExceptione1){ e1.printStackTrace(); } } if(mi==edit){ dispose(); try{ neweditClass(); }catch(SQLExceptione1){ e1.printStackTrace(); } } if(mi==add){ dispose(); newAdd(); } if(mi==delete){ dispose(); try{ newdelClass(); }catch(SQLExceptione3){ e3.printStackTrace(); } } if(mi==exit){ System.exit(0); } } }} 设计一个Add类,用于执行“操作”菜单“添加”命令时打开该界面,用户在页面里输入信息,单击“返回”按钮关闭当前窗口打开主界面,单击“清空”按钮撤销用户的输入,单击“提交”按钮,提交数据,先用findInfo()函数根据姓名查找数据,若表中已有此联系人则提示相应信息,若没查找到则执行insertInfo()函数完成数据插入操作,界面设计与代码如下:publicclassAddextendsJFrameimplementsActionListener{ Add(){ …… } publicvoidactionPerformed(ActionEvente){ roomname=names[0]; if(e.getSource()==jbArray1[2]){//清空按钮 aname.setText(""); atelephone.setText(""); aqq.setText(""); aname.requestFocus(); grp.setSelectedCheckbox(null); } if(e.getSource()==jbArray1[0]){//返回按钮 this.dispose(); newBjtxyShouYe(); } if(e.getSource()==jbArray1[1]){//提交按钮 Studentstudentadd=newStudent(); if(aname.getText().equals("")){ JOptionPane.showMessageDialog(this,"姓名不能为空!"); }else{ studentadd.setName(aname.getText()); } if(sex==1){ studentadd.setGender("男"); }elseif(sex==0){ studentadd.setGender("女"); }else{ JOptionPane.showMessageDialog(this,"请选择性别!"); } studentadd.setRoom(roomname); studentadd.setTelephone(atelephone.getText()); studentadd.setQq(aqq.getText()); try{ Connectionconn=DbUtil.getConn(); ResultSetrs=DaoStudent.findInfo(conn,studentadd); if(rs.next()){ JOptionPane.showMessageDialog(this,"该同学已存在!"); }else{ inti=DaoStudent.insertInfo(conn,studentadd); if(i==1){ JOptionPane.showMessageDialog(this,"添加数据成功!"); this.dispose(); newBjtxyShouYe(); }else{ JOptionPane.showMessageDialog(this,"添加数据失败,请重试!"); } } }catch(Exceptione1){ e1.printStackTrace(); } } } classCheckHandleimplementsItemListener{ publicvoiditemStateChanged(ItemEvente){ Objects=e.getSource(); if(s==male){ sex=1; }else{ sex=0; } } } classRoomStateChangedimplementsItemListener{ publicvoiditemStateChanged(ItemEvente1){ select=aroom.getSelectedIndex(); roomname=names[select]; } }} 设计一个SearchClass类在执行“操作”菜单“查询”命令时打开,用于输入联系人姓名调用findInfo()命令在myclass表中查询联系人数据并返回给SearchStudent类,界面设计与代码如下:publicclassSearchClassextendsJFrameimplementsActionListener{ SearchClass()throwsSQLException{ …… } publicvoidactionPerformed(ActionEvente){ Objects=e.getSource(); if(s==back){ this.dispose(); newBjtxyShouYe(); }elseif(s==sure){ Stringname=txt.getText(); Studentstudent=newStudent(name); try{ Connectionconn=DbUtil.getConn(); ResultSetrs=DaoStudent.findInfo(conn,student); if(!rs.next()){ JOptionPane.showMessageDialog(this,"没有您要查询的学生信息"); nametxt.setText(""); }else{ student.setName(rs.getString("name")); student.setId(rs.getInt("id")); student.setGender(rs.getString("gender")); student.setTelephone(rs.getString("telephone")); student.setQq(rs.getString("qq")); student.setRoom(rs.getString("room")); this.dispose(); newSearchStudent(student); } }catch(Exceptione1){ e1.printStackTrace(); } }elseif(s==unsure){ nametxt.setText(""); } }} 创建一个SearchStudent类,用于接收SearchClass类传来的数据,并在一个新的窗口显示出来,且数据为不可更改状态,单击“返回”按钮返回主界面,单击“删除”按钮可根据姓名删除联系人数据,设计界面与代码如下:publicclassSearchStudentextendsJFrameimplementsActionListener{ privateJPaneljp=newJPanel(); privateJLabel[]jlArray={newJLabel("姓名:"),newJLabel("性别:"),newJLabel("寝室号:"),newJLabel("联系方式:"),newJLabel("QQ号:")}; privateJButton[]jbArray={newJButton("返回"),newJButton("删除")}; privateJLabelbjtxl=newJLabel("班级通讯录"); CheckboxGroupgrp=newCheckboxGroup(); privateStringnames[]={"11B105","11B106","11B119","11B129","11B134","9B633","9B634"}; privateJComboBoxbedroom; privateCheckboxmale,fmale; privateJTextFieldname=newJTextField(30); privateJTextFieldtelephone=newJTextField(30); privateJTextFieldqq=newJTextField(30); publicstaticStudentstudent; privateStringgender,aroom; SearchStudent(Studentstudent){ jp.setLayout(null); this.student=student; bjtxl.setBounds(165,20,150,30); bjtxl.setFont(newFont("Serif",Font.BOLD,18)); jp.add(bjtxl); //接收查询到的学生数据 name.setText(student.getName()); name.setEnabled(false); //添加性别单选按钮 CheckboxGroupgrp=newCheckboxGroup(); male=newCheckbox("男"); fmale=newCheckbox("女"); male.setCheckboxGroup(grp); fmale.setCheckboxGroup(grp); male.setBounds(160,110,30,30); fmale.setBounds(200,110,30,30); gender=student.getGender(); if(gender.equals("男")){ grp.setSelectedCheckbox(male); }else{ grp.setSelectedCheckbox(fmale); } male.setEnabled(false); fmale.setEnabled(false); jp.add(male); jp.add(fmale); //添加宿舍名称 bedroom=newJComboBox(names); bedroom.setMaximumRowCount(3); aroom=student.getRoom(); if(aroom.equals(names[0])){ bedroom.setSelectedIndex(0); }elseif(aroom.equals(names[1])){ bedroom.setSelectedIndex(1); }elseif(aroom.equals(names[2])){ bedroom.setSelectedIndex(2); }elseif(aroom.equals(names[3])){ bedroom.setSelectedIndex(3); }elseif(aroom.equals(names[4])){ bedroom.setSelectedIndex(4); }elseif(aroom.equals(names[5])){ bedroom.setSelectedIndex(5); }elseif(aroom.equals(names[6])){ bedroom.setSelectedIndex(6); }else{ bedroom.setSelectedIndex(7); } bedroom.setBounds(160,160,180,25); bedroom.setEnabled(false); jp.add(bedroom); telephone.setText(student.getTelephone());//设置学生联系方式 telephone.setEnabled(false); qq.setText(student.getQq()); qq.setEnabled(false); //添加标签 for(inti=0;i<5;i++){ jlArray[i].setBounds(70,60+i*50,80,25); jp.add(jlArray[i]); } //添加按钮 for(intj=0;j<2;j++){ jbArray[j].setBounds(130+j*110,320,80,25); jp.add(jbArray[j]); jbArray[j].addActionListener(this); } name.setBounds(160,60,180,25); jp.add(name); telephone.setBounds(160,210,180,25);//添加联系方式文本框 jp.add(telephone); qq.setBounds(160,260,180,25);//添加QQ号 jp.add(qq); jp.add(bedroom); //设置图标 Imageicon=Toolkit.getDefaultToolkit().getImage("res\\1123.jpg"); this.setIconImage(icon); this.add(jp); this.setTitle("查看"); this.setResizable(false); DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();//获取当前屏幕大小 this.setBounds((screenSize.width-450)/2,(screenSize.height-420)/2,450,420); this.setVisible(true); } publicvoidactionPerformed(ActionEvente){ Objects=e.getSource(); if(s==jbArray[0]){//返回按钮 this.dispose(); newBjtxyShouYe(); }elseif(s==jbArray[1]){//删除按钮 try{ Connectionconn=DbUtil.getConn(); inti=DaoStudent.delInfo(conn,student); if(i==1){ JOptionPane.showMessageDialog(this,"删除成功!"); this.dispose(); newBjtxyShouYe(); }else{ JOptionPane.showMessageDialog(this,"删除失败,请重试!"); } }catch(Exceptione2){ e2.printStackTrace(); } } }} 创建一个DelClass类,当执行“操作”菜单“删除”命令时打开该界面,输入要删除的联系人的姓名单击“确定”按钮则可调用delInfo()函数删除联系人数据,界面设计与代码如下:publicclassdelClassextendsJFrameimplementsActionListener{ delClass()throwsSQLException{ …… } publicvoidactionPerformed(ActionEvente){ Objects=e.getSource(); if(s==dback){//返回按钮 this.dispose(); newBjtxyShouYe(); }elseif(s==dsure){//确定按钮 Stringname=this.dnametxt.getText(); Studentstudent=newStudent(name); try{ Connectionconn=DbUtil.getConn(); inti=DaoStudent.delInfo(conn,student); if(i==1){ JOptionPane.showMessageDialog(this,"删除成功!"); this.dispose(); newBjtxyShouYe(); }else{ JOptionPane.showMessageDialog(this,"删除失败!"); dnametxt.setText(""); } }catch(Exceptione2){ e2.printStackTrace(); } }elseif(s==dunsure){//清空按钮 dnametxt.setText(""); } }} 创建一个EditClass类当执行“操作”菜单“修改”时调用它,输入要修改的联系人姓名,单击“确定”按钮,调用findInfo()函数查找要修改的数据,并将查找到的信息传给Edit,界面设计与代码如下:publicclasseditClassextendsJFrameimplementsActionListener{ editClass()throwsSQLException{ …… } publicvoidactionPerformed(ActionEvente){ Objectas=e.getSource(); if(as==back){//返回按钮 this.dispose(); newBjtxyShouYe(); } if(as==sure){//确定按钮 Stringname=txt.getText(); Studentstudent=newStudent(name); try{ Connectionconn=DbUtil.getConn(); ResultSetrs=DaoStudent.findInfo(conn,student); if(!rs.next()){ JOptionPane.showMessageDialog(this,"没有您要修改的学生信息"); nametxt.setText(""); }else{ student.setId(rs.getInt("id")); student.setName(rs.getString("name")); student.setId(rs.getInt("id")); student.setGender(rs.getString("gender")); student.setTelephone(rs.getString("telephone")); student.setQq(rs.getString("qq")); student.setRoom(rs.getString("room")); this.dispose(); newEdit(student); } }catch(Exceptione1){ e1.printStackTrace(); } } if(as==unsure){//清空按钮 nametxt.setText(""); nametxt.requestFocus(); } }} 创建一个Edit类,接收EditClass类传过来的数据并显示出来,用户修改后单击“提交”按钮调用editInfo()函数修改联系人数据,“撤消”按钮可撤消用户的修改,显示最原始的界面,界面设计与代码如下:publicclassEditextendsJFrameimplementsActionListener{ Edit(Studentstudent){ …… } publicvoidactionPerformed(ActionEvente){ if(e.getSource()==jbArray[0]){//返回按钮 dispose(); newBjtxyShouYe(); }elseif(e.getSource()==jbArray[1]){//提交按钮 intindex=JOptionPane.showConfirmDialog(null,"确认修改该条数据吗?","确认修改",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); if(index==0){//确认修改 Studentstudentedit=newStudent(); //获取提交的数据 studentedit.setId(id); studentedit.setName(name.getText()); if(sex==1){ studentedit.setGender("男"); }else{ studentedit.setGender("女"); } studentedit.setRoom(roomname); studentedit.setTelephone(telephone.getText()); studentedit.setQq(qq.getText()); studentedit.setRoom(roomname); try{ Connectionconn=DbUtil.getConn(); inti=DaoStudent.editInfo(conn,studentedit); if(i==1){ JOptionPane.showMessageDialog(this,"修改数据成功!"); this.dispose(); newBjtxyShouYe(); }else{ JOptionPane.showMessageDialog(this,"修改数据失败,请重试!"); } }catch(Exceptione5){ e5.printStackTrace(); } } }elseif(e.getSource()==jbArray[2]){//撤消按钮 this.dispose(); newEdit(student); } } classCheckHandleimplementsItemListener{ publicvoiditemStateChanged(ItemEvente){ Objects=e.getSource(); if(s==male){ sex=1; }else{ sex=0; } } } classRoomStateChangedimplementsItemListener{ publicvoiditemStateChanged(ItemEvente1){ select=bedroom.getSelectedIndex(); roomname=names[select]; } }} 创建一个类Browse,当执行“操作”菜单,“查看”命令时打开该窗口,显示所有联系人的数据,界面设计与代码如下:publicclassBrowseextendsJFrameimplementsActionListener{ privatestaticResultSetrs; privateJPaneljp; privateJPaneljpl; privateJButtonback,quit; publicBrowse(ResultSetrs){ this.rs=rs; jp=newJPanel(); jpl=newJPanel(); back=newJButton("返回"); quit=newJButton("退出"); back.setBounds(100,200,80,30); back.addActionListener(this); jpl.add(back); quit.setBounds(200,200,80,30); quit.addActionListener(this); jpl.add(quit); Imageicon=Toolkit.getDefaultToolkit().getImage("res\\1123.jpg"); this.setIconImage(icon); this.add(jp); finalString[]colHeads={"id","gender","name","telephone","qq","room"}; Object[][]base=newObject[50][7]; try{ inti=0; while(rs.next()){ base[i][0]=rs.getStri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届高中语文一轮复习学案22 文言翻译句子(含答案)
- 生产设备的定期检查与预防性维修
- 元旦座谈会发言稿
- 家族发言稿格式及范文
- 管理办公室工作总结
- 幼儿园安全教师工作总结
- 学生会生活部个人计划
- 吸烟有害健康活动总结
- 电子信息工程中的节能技术与策略
- 策划部门个人年终工作总结
- 医师手术权限申请流程
- 2025-2030年中国融雪剂行业运行动态及发展前景预测报告
- DB31∕T 1043-2017 暴雨强度公式与设计雨型标准
- 多学科视域中的历史动物研究综述
- 知名企业建筑工程抹灰工程标准规范图示手册
- 诊所信息保密和安全管理制度
- 重大事故隐患排查治理
- 部编版语文一年级下册第一单元教材解读
- 护士临床护理组长
- 2025保安部年度工作计划
- 土建、装饰、维修改造等零星工程施工组织设计技术标
评论
0/150
提交评论