




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库课程设计实验报告摘要随着人类社会的不断进步,科学技术有了长足的发展,尤其是在当今中国知识经济时代,知识大爆炸带来了全球图书企业的飞速发展,这些书籍为科技的发展做出了巨大的贡献。人类短短的几十年创造了大量的书籍资源,但是图书数量之多,也使得其管理起来非常的繁琐,随着信息时代的到来,图书的信息化管理使得问题得以解决,图书馆管理系统的出现就显得水到渠成了。本系统主要上可以分为两大模块:图书馆管理员模块和读者登录模块,并在这两大模块下分成多个子模块。图书的使用对象是借阅者,例如学生,教师,管理员;而管理者同时也是图书馆的管理者。因此根据这些信息,本系统的主要功能就是:实现图书馆图书信息的管理和维
2、护,如用户信息管理,管理员信息管理,图书浏览,书架管理信息,图书馆规则维护,新书入库,整理图书,修改图书信息和进行查询等;以及系统的图书信息查询,图书的借出和归还等功能 图书信息管理系统能够为用户提供充足的信息和快捷的查询手段.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。目录:第一章:需求分析1,学生用户端2,教师用户端第二章:总体设计1,系统分析2,可行性分析3,系统目标4,系统功能设计5,构建开发环境第三章:数据库设计1,数据库分析2,项目E-R图3,数据库表的设计第四章:程序模块设计1,用户登录模块2,数据库操纵框架3,登录界面实现4,管理端界面的设计5,查
3、询图书界面模块6,借阅预约图书功能模块7,归还挂失图书功能8,图书超期处理模块9,学生用户管理模块10,,管理员管理模块11,超级管理员功能开发第五章:主要模块界面第六章:程序源代码第七章:参考文献1,需求分析当决定要开发一个信息系统时,首先要对信息系统的需求进行分析,需求分析要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。抽象出当前系统的逻辑模型。在理解当前系统“怎么做”的基础上,抽取其“做什么”的本质,从而从当前系统的物理模型抽象出当前系统的逻辑模型。在物理模型中有许多物理因素,随着分析工作的深入,有些非本质的物理因素就成为
4、不必要的负担,因而需要对物理模型进行分析,区分出本质的物理因素就成为不必要的负担,因而需要对物理模型进行分析,区分出本质的和非本质的困素,去掉那些非本质的困素即可获得反映系统本质的逻辑模型。管理员登录过程:当管理员在登录页面输入正确的用户名和密码后,通过客户端和服务器的双重校验,并且检测数据库中的对应的用户名和密码是否正确,如果是正确的,则表示管理员登录成功并进入管理员操作页面学生用户端:查询图书,学生用户可以进行简单的查询和高级查询,预约图书,当要借的的书不在馆时,可以提前预约。挂失图书,图书丢失要挂失,可以在学生用户端实现。管理员端:学生用户管理,实现学生用户信息的修改,删减,添加,查询。
5、图书管理,包括对图书的增加,删减,查询等。管理员管理:操作者包括超级管理员和普通管理员,超级管理员可以对普通管理员进行删减,查询等操作,而普通管理员只有修改自己密码的权限。 借阅管理:主要是学生借阅管理,归还图书和缴纳罚款的管理。2,总体设计系统不但要满足客户提出的要求,同时也要考虑其性能。因此,在项目开发之前,首先要进行需求分析和可行性研究,这就是进行项目开发的基础。利用MVC设计模式,模块间实现高内聚,低耦合。界面设计美观大方,操作简单。 功能完善,结构清晰。能够快速的进行图书馆信息,图书馆参数,书架,管理员等信息等系统的设置。能够快速、准确的进行读者类型管理的相关功能,如读者类型增加、修
6、改、删除。能够快速、准确的进行读者档案管理的相关功能,如读者档案的详细信息的查看,读者档案的增加、修改、查询。能够快速、准确的进行图书类型管理的相关功能,如图书类型的增加、修改、删除。能够快速、准确的进行图书档案管理的相关功能,如图书档案的详细信息的查看,图书档案的增加、修改、删除。能够快速、准确的进行图书借阅的相关功能,如图书借阅,图书借阅查询,图书归还,图书续借等。能够快速准确的进行系统的相关功能查询,如图书借阅查询、图书到期查询、图书档案查询等。能够快速、准确的进行管理员的相关功能,如管理员的增加、修改管理员密码、删除管理员。能够快速、准确的进行管理员或者读者的登录。能够快速、准确的让读
7、者进行读者功能模块的浏览。3,可行性研究可行性分析是对项目的可行程度进行分析,以便管理层对资金以及技术的投入进行决策,包括技术可行性,经济可行性,营运可行性。对于本项目而言,图书是人类获取知识最重要的途径,随着读者的日益增加,对图书的管理要求也增大很多,从图书馆的需求以及现有的技术等方面研究该图书管理系统的可行性。当前该图书馆的管理比较粗放,还有大部分需要手工操作,对信息的维护不仅费用高而且工作量大,而且信息的安全性很难得到保障,学校支出了适量的资金进行本系统的开发。使用本系统后大部分工作将实现自动化,图书馆只需花费很少的人力和物力进行系统的维护即可。根据上述分析,公司为此项目结构清晰,功能合
8、理,而且使用 JAVA SE技术能够进行开发,并实现客户的需求的全部功能,由于这是一个中小型系统,客户要求的开发时间完全充裕,利润与开发成本也比较高,这可在一定程度上提高了公司的效益,因此决定开发此项目。系统功能结构本系统包括学生端和管理员端,有借阅图书,预约图书,查询图书,挂失图书,超期交纳罚款等功能模块,结构如下:3,数据库设计数据库作为系统的基础,首先要保证其设计的合理性,在使用应用系统的时候,拥有设计合理的数据库往往可以起到事半功倍的效果,在系统的维护,功能拓展时,这一优点尤其得到很好的体现。系统包含的实体主要有:图书、学生、管理员等,下面将分别介绍各实体及实体间的E-R图。通过其E-
9、R图读者可以更好地理解各实体的属性关系。下面就以学生实体为例,来进行介绍,学生E-R图 如图所示管理员管理员E-R图数据库表的设计主要有学生信息表和管理员信息表还有图书信息表为例字段名称数据类型字段大小是否主键是否为空说明STUNOIntN/A是否学号StuNameVarchar50否是姓名StuAgeIntN/A否是年龄StuSexVarchar50否是性别ClassVarchar50否是班级DepartmentVarchar50否是院系TelChar11否是电话PermittedVarchar50否是借阅许可PasswordVarchar20否是密码学生用户信息表字段名称数据类型字段大小是
10、否主键是否为空说明mgNoIntN/A是否管理员IDPermittedVarchar50否否管理员权限PasswordVarchar50否否管理员密码管理员信息表字段名称数据类型字段大小是否主键是否为空说明BookNo是否图书IDBookName否是图书名称Auther否是图书作者Publishment否是出版社ButTime否是购进日期Borrowed否是是否借阅Ordered否是是否预约图书基本信息表字段名称数据类型字段大小是否主键是否为空说明BookNointN/A是否书号STUNOvarchar50否否学号BorrorTimevarchar50否是借阅时间ReturnTimevarch
11、ar50否是归还时间Borrowedvarchar50否是是否借阅Orderedvarchar50否是是否预约借阅图书信息字段名称数据类型字段大小是否主键是否为空说明StuNOIntN/a是否学号BookNOIntN/A否是书号BookNameVarchar50否是书名DelayTimevarchar50否是超期天数超期图书信息表字段名称数据类型字段大小是否主键是否为空说明BookNOIntN/A是否书号StuNamevarchar50否是学生姓名Classvarchar50否是班级BookNamevarchar50否是书名StuNOIntN/A否是学生IDAuthervarchar50否是作
12、者预约图书表如上字段名称数据类型字段大小是否主键是否为空说明LBNOIntN/A是否挂失书号BookNOIntN/A否是书号BookNameVarchar50否是书名StuNOintN/A否是学生ID第四章:程序模块设计1, 用户登录模块设计用户登录界面的主要功能是验证登录者的身份和权限,只有学生用户或管理员才能登录与之对应的管理系统。在登录界面,通过对各项登录条件的验证,就可以确认用户的使用权限。下面将介绍登陆模块的具体开发。登录界面开发界面构造器的实现 管理员登录模块需要对管理员登录是输入的用户名和密码进行检验,当管理员输入用户名和密码后,系统需要对输入的参数与数据库中的所存储的参数进行对
13、比,当用户名和密码相对应且都正确时能能够成功登录到管理员的操作首页Login.jsp是管理员的登录界面,主要功能是将管理员输入的用户名和密码提交到manager.action进行处理而且能够进行简单的客户端校验。Manager.action是对用户提交的用户名和密码进行服务器端的校验。当用户提交了数据后,manager.action将调用managerdao中的check()检测用户提交的数据是否匹配数据库中的数据,各代码如下所示Login.jsp代码如下:package wyf.hxl;import javax.swing.*;import java.awt.*;import java.aw
14、t.event.*;import javax.swing.table.*;import javax.swing.event.*;import java.sql.*;import java.util.*;import java.util.Date;public class Login extends JFrame implements ActionListenerprivate JPanel jp=new JPanel();/创建JPanel对象private JLabel jlArray=/创建标签组new JLabel(用户IP),new JLabel(端口号),new JLabel(用户名
15、),new JLabel(密 码),new JLabel();private JButton jbArray=/创建按钮数组new JButton(学生登录),new JButton(清空),new JButton(管理员登录);private JTextField jtxtArray= /创建文本框new JTextField(localhost),new JTextField(3306),new JTextField(10001);private JPasswordField jpassword=new JPasswordField(); /创建密码框String sql;DataBase
16、 db;public Login()jp.setLayout(null); /设置JPanel的布局管理器for(int i=0;i4;i+) /对标签与按钮控件循环处理jlArrayi.setBounds(30,20+i*50,80,25);/设置标签与按钮的大小和位置jp.add(jlArrayi);/将标签和按钮添加进JPanel容器中for(int i=0;i3;i+)/设置按钮的大小位置并为其添加事件监听器jbArrayi.setBounds(10+i*120,230,100,25);jp.add(jbArrayi);jbArrayi.addActionListener(this);
17、for(int i=0;i3;i+)/设置文本框的大小位置并为其添加事件监听器jtxtArrayi.setBounds(80,20+50*i,180,25);jp.add(jtxtArrayi);jtxtArrayi.addActionListener(this);jpassword.setBounds(80,170,180,25);/设置密码框的大小位置jp.add(jpassword);/将密码框添加进JPanel容器jpassword.setEchoChar(*);/设置密码框的回显字符jpassword.addActionListener(this);/为密码框注册监听器jlArray
18、4.setBounds(10,280,300,25);/设置用于显示登录状态的标签的大小位置jp.add(jlArray4); /将标签添加进JPanel容器this.add(jp);Image image=new ImageIcon(ico.gif).getImage();/对logo图片进行初始化this.setIconImage(image);/设置窗体的大小位置及可见性this.setTitle(登录);this.setResizable(false);this.setBounds(100,100,400,350);this.setVisible(true);/实现ActionList
19、ener接口中的方法public void actionPerformed(ActionEvent e)/事件源为文本框String mgno=jtxtArray2.getText().trim();String mgIP=jtxtArray0.getText().trim();String port=jtxtArray1.getText().trim();String message=mgIP+:+port;DataBase.message=message;/将本方法椎谋淞孔魑问持蹈鳧ataBase方法的私有变量DataBase.log=this;if(e.getSource()=jtxtA
20、rray0)jtxtArray1.requestFocus();/切换输入焦点到密码框if(e.getSource()=jtxtArray1)jtxtArray2.requestFocus();/切换输入焦点到密码框if(e.getSource()=jtxtArray2)jpassword.requestFocus();/切换输入焦点到密码框else if(e.getSource()=jbArray1)/事件源为清空按钮/清空所有信息jlArray4.setText();jtxtArray2.setText();jpassword.setText();/将输入焦点设置到文本框jtxtArray
21、2.requestFocus();else if(e.getSource()=jbArray2)/事件源为管理员登录按钮/判断用户名和密码是否匹配if(!mgno.matches(d+)/如果用户名格式输入有误JOptionPane.showMessageDialog(this,用户名格式错误!,信息,JOptionPane.INFORMATION_MESSAGE);return;if(jtxtArray0.getText().trim().equals()/如果用户IP文本框为空,提示JOptionPane.showMessageDialog(this,用户IP不能为空!,信息,JOptio
22、nPane.INFORMATION_MESSAGE);return;if(jtxtArray1.getText().trim().equals()/如果端口号文本框为空,提示JOptionPane.showMessageDialog(this,用户端口号不能为空!,信息,JOptionPane.INFORMATION_MESSAGE);return;sql=select mgNo,password from manager where mgNo=+Integer.parseInt(mgno);db=new DataBase();db.selectDb(sql);/以上三行是对用户名和密码进行查
23、询,验证身份tryString mgNo=;String password=;while(db.rs.next()/取出结果集中数据并赋值mgNo=db.rs.getString(1).trim();password=db.rs.getString(2).trim();if(jtxtArray2.getText().trim().equals(mgNo)&String.valueOf(jpassword.getPassword().equals(password)/登录成功jlArray4.setText(恭喜您,登录成功!);new Root(mgNo);this.dispose();els
24、e/登录失败jlArray4.setText(对不起,登录失败!);catch(Exception e1)e1.printStackTrace();db.dbClose();/关闭数据库链接else if(e.getSource()=jbArray0)/事件源为学生登录按钮if(!jtxtArray2.getText().trim().matches(d+)/若学号格式错误,输出提示对话框JOptionPane.showMessageDialog(this,输入有误,学号只能为数字!,消息, JOptionPane.INFORMATION_MESSAGE);return;if(jtxtArra
25、y0.getText().trim().equals()/若用户IP文本框输入为空,提示JOptionPane.showMessageDialog(this,用户IP不能为空!,信息,JOptionPane.INFORMATION_MESSAGE);return;if(jtxtArray1.getText().trim().equals()/若端口号文本框输入为空,提示JOptionPane.showMessageDialog(this,用户端口号不能为空!,信息,JOptionPane.INFORMATION_MESSAGE);return;/查询学号文本中所输学号是否存在于STUDENT表
26、中sql=select StuNO,Password from STUDENT where StuNO=+Integer.parseInt(jtxtArray2.getText().trim();db=new DataBase();db.selectDb(sql);tryif(!(db.rs.next()/若学号错误,输出提示对话框JOptionPane.showMessageDialog(this,输入了错误的学号!,消息, JOptionPane.INFORMATION_MESSAGE);else/得到输入学号的学生的姓名和班级String stuNO=db.rs.getString(1)
27、.trim(),password=db.rs.getString(2).trim();if(jtxtArray2.getText().trim().equals(stuNO)&String.valueOf(jpassword.getPassword().equals(password)/登录成功jlArray4.setText(恭喜您,登录成功!);new StudentSystem();this.dispose();else/登录失败jlArray4.setText(对不起,登录失败!);catch(Exception ex) ex.printStackTrace();db.dbClose(
28、); /关闭数据库链接public static void main(Stringargs)new Login();登录失败:登录成功:学生端登录成功2, 数据库操作类框架3, public class DataBase4, 5, Connection con=null;/声明Connection引用6, Statement stat;7, ResultSet rs;8, int count;9, public static String message; /声明一个静态成员变量10, public static Login log;11, public DataBase()12, try/加
29、载MySQL的驱动类,并创建数据库连接13, Class.forName(org.gjt.mm.mysql.Driver);14, /con=java.sql.DriverManager.getConnection(jdbc:mysql:/localhost:3306/test,root,null);15, con=DriverManager.getConnection(jdbc:mysql:/+message+/test?useUnicode=true&characterEncoding=GBK,root,zhanghai);16, stat=con.createStatement();/创
30、建Statement对象17, 18, catch(Exception e)/如果从Login类传的参数不对,则提示出错19, JOptionPane.showMessageDialog(log,用户IP或端口号错误!,20, 信息,JOptionPane.INFORMATION_MESSAGE);21, 22, 23, public void selectDb(String sql)/声明select方法24, try25, /sql = new String(sql.getBytes(),ISO-8859-1);26, rs=stat.executeQuery(sql);27, 28, c
31、atch(Exception ie)ie.printStackTrace();29, 30, public int updateDb(String sql)/声明update方法31, try32, sql = new String(sql);/转码33, count=stat.executeUpdate(sql);34, 35, catch(Exception ie)ie.printStackTrace();36, return count;37, 38, public void dbClose()/声明close方法39, trycon.close();40, catch(Exceptio
32、n e)e.printStackTrace();41, 42, 这段代码主要实现了加载MYSQL的JDBC驱动。并且创建了数据库连接和STATEMENT对象3,管理端界面的实现模块管理端界面的实现,窗体左边是一个树状列表控件,右边是一个卡片布局的面板,实现代码如下:package wyf.hxl;import java.awt.*;import java.awt.event.*;import javax.swing.event.*;import javax.swing.*;import javax.swing.tree.*;import java.io.*;public class Root
33、extends JFrame/创建节点数组DefaultMutableTreeNode dmtn=new DefaultMutableTreeNode(new NodeValue(图书馆管理系统),new DefaultMutableTreeNode(new NodeValue(学生用户管理),new DefaultMutableTreeNode(new NodeValue(图书管理),new DefaultMutableTreeNode(new NodeValue(查询图书),new DefaultMutableTreeNode(new NodeValue(借阅预约图书),new Defau
34、ltMutableTreeNode(new NodeValue(归还挂失图书),new DefaultMutableTreeNode(new NodeValue(交纳罚款),new DefaultMutableTreeNode(new NodeValue(管理员管理),new DefaultMutableTreeNode(new NodeValue(退出);DefaultTreeModel dtm=new DefaultTreeModel(dmtn0);/创建树模型,指定根节点为学生管理系统JTree jt=new JTree(dtm);/创建包含dtm树模型的JTree对象JScrollPa
35、ne jsp=new JScrollPane(jt);/为JTree创建滚动窗体private JSplitPane jsplr=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true);/创建分割窗体对象private JPanel jp=new JPanel();/创建JPanel对象Image image=new ImageIcon(tsgl.jpg).getImage();ImageIcon ii = new ImageIcon(image);private JLabel jlRoot=new JLabel(ii);private Manager
36、 mg;/登陆管理员名String mgNo;/管理员IDCardLayout cl=new CardLayout();/获取卡片布局管理器引用public Root(String mgNo)this.mgNo=mgNo;/获得管理员IDmg=new Manager(mgNo);/创建管理员管理面板this.setManager();/设置管理员权限this.initJp();/初始化卡片布局面板this.addTreeListener();/为树节点注册事件监听器for(int i=1;i9;i+)/向根节点添加子节点dtm.insertNodeInto(dmtni,dmtn0,i-1);j
37、t.setEditable(false);/设置该树中节点是可编辑的this.add(jsplr);/将包含树的滚动窗口添加进窗体jsplr.setLeftComponent(jt);/将包含树的滚动窗口添加进左边的子窗口jp.setBounds(200,50,600,500);/为jp设置大小位置并添加进右边的子窗口jsplr.setRightComponent(jp);jsplr.setDividerLocation(200);/设置分隔条的初始位置jsplr.setDividerSize(4);/设置分隔条的宽度jlRoot.setFont(new Font(Courier,Font.P
38、LAIN,30);jlRoot.setHorizontalAlignment(JLabel.CENTER);jlRoot.setVerticalAlignment(JLabel.CENTER);/设置窗体的关闭动作,标题,大小,位置及可见性this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Image image=new ImageIcon(ico.gif).getImage();this.setIconImage(image);this.setTitle(图书管理系统);/设置窗体首次出现的大小和位置-自动居中Dimension scree
39、nSize = Toolkit.getDefaultToolkit().getScreenSize();int centerX=screenSize.width/2;int centerY=screenSize.height/2;int w=500;/本窗体宽度int h=400;/本窗体高度this.setBounds(centerX-w/2,centerY-h/2-100,w,h);/设置窗体出现在屏幕中央this.setExtendedState(JFrame.MAXIMIZED_BOTH);/窗体全屏this.setVisible(true);/设置窗体可见jt.setShowsRoo
40、tHandles(true);/设置显示根节点的控制图标public void setManager()String sql=select permitted from manager where mgNo=+mgNo+;DataBase db=new DataBase();/创建数据库类对象db.selectDb(sql);/执行查询trydb.rs.next();/结果集游标下移String str=db.rs.getString(1).trim();/得到管理员权限if(str.equals(0)mg.setFlag(false);/设置管理员权限catch(Exception e)e.
41、printStackTrace();public void initJp()jp.setLayout(cl);/设置布局管理器为卡片布局jp.add(jlRoot,root);/添加根结点显示信息jp.add(new Student(),stu);/添加学生管理模块界面jp.add(new BookManage(),bm);/添加图书管理模块界面jp.add(new SearchBook(),sb);/添加查找图书管理界面jp.add(new BorrowBook(),bb);/添加借阅预约图书模块界面jp.add(new ReturnBook(),rb);/添加归还挂失图书界面jp.add(
42、this.mg,Manager);/添加管理员管理模块界面jp.add(new ExceedTime(),et);/添加罚款处理界面public void addTreeListener()jt.addTreeSelectionListener(new TreeSelectionListener()public void valueChanged(TreeSelectionEvent e)DefaultMutableTreeNode cdmtn=/得到选中的节点对象(DefaultMutableTreeNode)e.getPath().getLastPathComponent();NodeVa
43、lue cnv=(NodeValue)cdmtn.getUserObject();/得到自定义节点对象if(cnv.value.equals(图书馆管理系统)/显示根结点信息cl.show(jp,root);if(cnv.value.equals(学生用户管理)/显示学生用户管理界面cl.show(jp,stu);else if(cnv.value.equals(图书管理)/显示图书管理界面cl.show(jp,bm);if(cnv.value.equals(查询图书)/显示查询图书界面cl.show(jp,sb);else if(cnv.value.equals(借阅预约图书)/显示借阅预约
44、图书界面cl.show(jp,bb);else if(cnv.value.equals(归还挂失图书)/显示归还挂失图书界面cl.show(jp,rb);else if(cnv.value.equals(交纳罚款)/显示缴纳罚款界面cl.show(jp,et);else if(cnv.value.equals(管理员管理)/显示管理员管理界面cl.show(jp,Manager);else if(cnv.value.equals(退出)/显示退出界面int i=JOptionPane.showConfirmDialog(Root.this,是否退出系统?,消息,JOptionPane.YES_
45、NO_OPTION);if(i=JOptionPane.YES_OPTION)/退出系统System.exit(0););public static void main(String args)new Root(wyf);class NodeValueString value;/自定义节点对象字符属性public NodeValue(String value)/构造器this.value=value;public String getValue()/value的Get方法return this.value;Overridepublic String toString()/重写toString方
46、法return value;3, 查询图书功能实现模块当学生用户在学生信息系统中,单击查询图书节点时,就会进入查询图书界面,页面开发的详细代码如下:package wyf.hxl;import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.table.*;import javax.swing.event.*;import java.sql.*;import java.util.*;import java.util.Date;public class SearchBook extends JP
47、anel implements ActionListenerint flag;String sql;DataBase db;/创建分割方向为上下的JSplitePane对象private JSplitPane jsp=new JSplitPane(JSplitPane.VERTICAL_SPLIT,true);private JPanel jpt=new JPanel();/创建JPanel对象private JPanel jpb=new JPanel();/创建表示下拉列表框数据模型的字符串数组private String str=书名,出版社,作者,购买时间;private JComboB
48、ox jcb=new JComboBox(str);/创建下拉列表框private JButton jb=new JButton(提交);/创建按钮private JLabel jlArray=new JLabelnew JLabel( 书 名),new JLabel( 作 者),new JLabel(出版社);private JTextField jtxtArray=new JTextField/创建文本框new JTextField(),new JTextField(),new JTextField(),new JTextField();private JRadioButton jrbAr
49、ray=/创建单选按钮new JRadioButton(简单查询,true),new JRadioButton(高级查询);private ButtonGroup bg=new ButtonGroup();/创建按钮组Vector head = new Vector();/定义表头head.add(书号);head.add(书名);head.add(作者);head.add(出版社);head.add(购进时间);head.add(是否借阅);head.add(是否预约);Vector data=new Vector();/定义检索出的书的基本信息DefaultTableModel dtm=n
50、ew DefaultTableModel(data,head);/创建表格模型JTable jt=new JTable(dtm); /创建Jtable对象JScrollPane jspn=new JScrollPane(jt);/将JTable封装到滚动窗格public SearchBook()this.setLayout(new GridLayout(1,1);/设置查询图书界面为网格布局/设置整个RetrunBook界面上下部分均为空布局管理器jpt.setLayout(null);jpb.setLayout(null);/设置单选框的大小、位置,并添加事件监听器jpt.add(jcb);
51、jcb.setBounds(160,20,150,20);jcb.addActionListener(this);/添加JButton设置其大小位置并添加事件监听器jpt.add(jb);jb.setBounds(560,20,120,20);jb.addActionListener(this);for(int i=0;i2;i+)/对单选按钮进行设置jrbArrayi.setBounds(20,20+i*40,100,20);jpt.add(jrbArrayi);jrbArrayi.addActionListener(this);bg.add(jrbArrayi);for(int i=0;i3;i+)/设置标签和文本框的坐标,并将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年三硼酸锂(LBO)晶体项目建议书
- 信托投资合同样本
- 劳动局合同模板
- 股权转让顾问协议二零二五年
- 二零二五厦门二手房买卖合同大全
- 房屋抵押协议书二零二五年
- 个人猪场转让合同
- 二零二五版冷静期离婚协议书
- 家庭宽带业务协议
- 知识产权共有协议二零二五年
- 子宫肌瘤课件教学课件
- 《黑神话:悟空》跨文化传播策略与路径研究
- 消防设施操作和维护保养规程
- 医疗器械委托生产质量协议模版
- (高清版)AQ 2065-2018 地下运矿车安全检验规范
- 2024年典型事故案例警示教育手册15例
- DL∕T 1882-2018 验电器用工频高压发生器
- 2024年北京电子科技职业学院高职单招笔试历年职业技能测验典型例题与考点解析含答案
- 大学生心理健康教育(山东联盟)智慧树知到期末考试答案章节答案2024年德州学院
- 标准航海用语
- 稀土矿采选安全事故防范与应急管理
评论
0/150
提交评论