毕业设计论文-基于JAVA的图书管理系统的设计与实现.doc
《毕业设计论文-基于JAVA的图书管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计论文-基于JAVA的图书管理系统的设计与实现.doc(46页珍藏版)》请在咨信网上搜索。
摘 要 在以信息技术为核心的时代,任何管理工作都离不开信息技术的帮助。如今的图书为了满足人们日益增长的精神文化需求,图书的种类和数量成倍的增加,图书的借阅工作日益频繁。因此,这就需要一个行之有效的图书管理系统来帮助图书馆工作人员更加方便、准确的管理图书的借阅工作。本系统的主要任务就是对图书、读者、借阅信息、查询进行统一管理,满足各类用户的需求。该系统的主要研究内容包括前台应用程序的开发以及后台数据库的建立和管理,对于前者要求应用程序功能的完备、易用。对于后者则要求建立数据的一致性和完整性。基于上述考虑,本系统是基于JAVA语言进行开发的,本系统利用Eclipse作为前端的应用开发工具,利用SQL Server 2005作为后台的数据库,通过对管理系统模块的研究,提出构造图书信息管理系统的方法,结合其它图书管理业务方面的常识,建立相关数据模型,利用面向对象开发工具对其进行设计与开发,使系统有良好的性能和较高的处理效率。 关键词:图书管理系统;数据库;面向对象 Abstract In the era of information technology as the core, any management work rely heavily on information technology to help. Now, in order to satisfy the library spirit culture of people growing demand, the amount and type of books and books have multiplied the uses of the borrowing work increasingly frequent. Therefore, it needs to be an effective books management system management system to help the people who work in libraries is more convenient and accurate management work of the library borrowing. The system's main task is to readers, borrowing books, information query, unified management, and satisfy the needs of the users. This system includes main research and development foreground application of backstage supporter's database for the establishment and management of the application requirements, complete functions, easy-to-use, etc. For the latter requires establishing consistency and integrality of data based on the consideration, this system is based on a JAVA language development, this system using the Eclipse as front application development tool that uses SQL Server 2005 as a background, based on the database management system structure, puts forward the module of the library management information system, and by using the method of knowledge, combined with other books management business sense, establish relevant data model, using object-oriented development tool to design and development, make the system has good performance and high efficiency. Key words: The books management system management system;Database;Object-oriented 目 录 摘要 I Abstract II 第1章 绪论 1 1.1 课题背景 1 1.2 国内外现状 1 1.3 本系统的主要研究内容 1 1.4 本系统的主要特点 2 第2章 需求分析 3 2.1 需求分析 3 2.2 系统目标 3 2.3 系统设计 3 2.3.1 系统的功能结构 4 2.3.2 系统的执行流程图 5 第3章 系统的数据库设计 6 3.1 数据库分析 6 3.2 数据库需求分析 7 3.3 数据库概念结构设计 7 3.3.1 图书信息实体 8 3.3.2 读者信息实体 8 3.3.3 图书借阅信息实体 8 3.3.4 图书分类实体 9 3.3.5 图书订购实体 9 3.3.6 操作员信息实体 9 3.3.7 库存信息实体 10 3.4 数据库逻辑结构设计 10 第4章 系统的详细设计与测试 13 4.1 公共模块设计 13 4.1.1 数据库的链接及操作类的编写 13 4.1.2 MenuActions类的编写 13 4.1.3 限制文本框长度类的编写 14 4.1.4 描述组合框索引与内容类的编写 15 4.1.5 在JLable上添加图片类的编写 15 4.2 主窗口的设计 15 4.2.1 主窗体概述 15 4.2.2 主窗体技术分析 16 4.2.3 主窗体的实现过程 17 4.3 系统登录模块设计 17 4.3.1 系统登录模块概述 17 4.3.2 系统登录模块技术分析 18 4.3.3 登陆模块实现过程 18 4.4 图书信息管理模块设计 19 4.4.1 图书信息管理模块概述 19 4.4.2 图书信息管理模块技术分析 21 4.4.3 图书信息管理模块实现过程 21 4.4.4 单元测试 22 4.5 图书借阅、归还模块设计 22 4.5.1 图书借阅、归还模块概述 22 4.5.2 图书借阅、归还模块技术分析 24 4.5.3 图书借阅、归还模块的实现过程 24 4.5.4 单元测试 25 4.6 图书查询模块设计 26 4.6.1 图书查询模块概述 26 4.6.2 图书查询模块技术分析 26 4.6.3 图书查询模块实现过程 27 4.7 格式化的文本框 27 4.7.1 使用JFormattedTextField限制整数输入 28 4.7.2 使用JFormattedTextField限制日期输入 28 结论 29 参考文献 30 附录 31 致谢 41 IV 齐齐哈尔大学毕业设计(论文) 第1章 绪 论 1.1 课题背景 在我国信息化管理系统近年来日趋成熟,在采用计算机技术进行管理之前,图书的图书借阅工作是非常繁琐和复杂的。图书的借阅工作完全依赖于手工操作,不但费时费力而且还经常容易出错。读者在借书的时候首先要有一个借书证,工作人员把读者要借的书的信息卡与读者的借书证放到一起,并且在借书证上填写借阅信息,这就是手工操作时代的借书过程[1]。这样的借阅工作显而易见,效率非常低,由于工作量大所以数据不但容易丢失,且非常容易出错。总的来说,缺乏系统、规范的信息管理手段。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。读者排队时间大大降低,读者可以花更多的时间在选择书和看书上。而且近年来,随着图书馆的规模逐渐扩大,图书数量也相应的大量增加,有关的图书的各种信息成倍增长。面对如此庞大的信息量,需要一套合理、有效、规范的图书管理系统,对图书资料进行统一、集中的管理。使用本程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,以便全面掌握图书的流通情况[2]。 1.2 国内外现状 信息技术的发展为图书馆的发展创造了良好的信息环境,目前社会上信息管理系统发展飞速,越来越多企事业单位引入了信息管理系统来管理信息,各大高校也相继采用了图书管理系统管理图书,取得很大的成效。国外的图书馆自动化系统是随着计算机技术发展而发展的[3]。并且较早实现了商品化,出现了不少知名公司,例如:美国的INNOPAC、SIRSI、及澳大利亚的HORIZON等,它们的产品技术开发已经很成熟,而国内的发展相对较晚,系统稳定性和安全性存在差距。但国内系统开发吸收了国外经验和技术,在中文书刊信息处理方面有很大优势,在技术方面,差距不明显。虽然国内起点晚,但也采用了流行的开发工具,如JAVA,VB,PB等[4]。 1.3 本系统的主要研究内容 本系统应用软件工程的设计思想,按照系统的开发流程完成了一个完整的图书管理系统[6]。同时,在程序的开发过程中,界面开发方面采用了Swing机制 ,Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面,使整个系统的设计思路更加清晰。 数据库方面,使用SQL Server 2005,通过Java的JDBC实现连接,JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,可以满足日常中小型规模的数据处理要求。 1.4 本系统的主要特点 参考一些典型图书管理系统的设计模式,从读者与图书管理员的角度出发,本着以读者借阅图书快捷、方便的原则,要求本系统应具有以下特点: 1. 具有良好的系统性能,友好的用户界面; 2. 较高的处理效率,便于使用和维护; 3. 采用成熟技术开发,使系统具有较高的技术水平和较长的生命周期; 4. 系统尽可能简化图书管理员的重复工作,提高工作质量; 5. 简化数据查询和统计难度。 第2章 需求分析 2.1 需求分析 在现在信息管理系统尤为重要的时代,图书管理系统是图书馆管理工作中不可缺少的部分,对于图书馆的管理者和使用者来说都非常重要。但长期以来,人们使用传统的手工方式或性能较低的图书系统管理图书馆的日常事务,操作流程比较繁琐,效率相当低[4]。而一个成功的图书管理系统应提供快速的图书信息检索功能、快捷的图书借阅、归还流程,为管理者与读者提供充足的信息和快捷的数据处理手段。 2.2 系统目标 根据需求分析的要求,本系统应达到以下目标: 1. 界面设计友好、美观; 2. 数据存储安全、可靠; 3. 信息分类清晰、准确; 4. 强大的查询功能,保证数据查询的灵活性; 5. 操作简单易行、界面清晰大方; 6. 系统安全、稳定; 7. 开发技术先进、功能完备、扩张性强; 8. 占用资源少、对硬件要求低; 9. 提供灵活、方便的权限设置功能,使整个系统的管理分工明确。 2.3 系统设计 图书管理系统分为4大功能模块,分别为“基础数据维护”、“图书借阅管理”、“新书管理”和“系统维护”。 2.3.1 系统的功能结构 图书管理 基础数据维护 图书借阅管理 新书订阅管理 系统维护 读者信息管理 图书信息管理 图书类别管理 图书还书管理 图书查询 图书借书管理 用户管理 更改密码 新书订购 验收新书 图2-1 系统功能结构图 2.3.2 系统的执行流程图 管理员 图书管理系统 管理员登陆 基础数据维护 读者信息管理 读者添加 读者相关信息 图书类别管理 读者修改删除 图书类别添加 类别修改 图书类别信息 图书信息管理 图书添加 图书修改 图书借阅管理 图书归还 图书借阅 图书查询 图书相关信息 图书管理系统 新书订阅管理 新书订阅 验收新书 订购相关信息 图书相关信息 系统维护管理 更改密码 用户管理 添加用户 用户修改删除 操作员信息 读者 图2-2 系统流程图 第3章 系统的数据库设计 数据库的设计关系到整个软件的成败。当今的企业信息管理系统都是通过数据库来存储信息的,因此数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计不仅可以提高数据存储的效率,保证数据的完整性和一致性,还能增加系统的灵活性。因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。在数据库建立过程中,要注重数据库与系统整体目标的一致性,使他们既相互独立又有紧密联系。用户与数据库接口之间是灵活与友好的,数据库的设计也要简单易行和便于理解。 3.1 数据库分析 现在主流的数据库主要有Access、SQL Server、Oracle等[7]。 Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。Access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器的假死,或者消耗掉服务器的内存导致服务器崩溃。因为本系统要求大量的用户访问以及大量的数据量,因此Access数据库并不适用本系统。 Oracle数据库支持多实例,处理数据效率高,而且是多平台的,在安全性和稳定性方面都不错,但是与SQL Server数据库相比,它的价格却高出很多,而且不易于操作,SQL Server界面直观,易于维护,并且SQL Server是微软公司开发的,因此会对Windows平台的兼容性及结合性会更加友好。由于本系统在Windows平台下开发,因此比Oracle更加适合。 考虑到本系统的稳定性与可靠性以及开发程序与用户需求,决定设计该系统的时候选择SQL Server 2005数据库来满足系统的需求。SQL Server 2005具有很强的完整性和可伸缩性,具有较高的性价比。 设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计一般包括如下几个阶段[8]: 1. 需求分析阶段 进行数据库设计首先必须准确了解与分析用户需求(包括数据和处理)。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为基本的需求分析是否做得充分与准确,决定了在其上构建数据的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。 2. 概念结构设计阶段 概念结构设计是整个数据设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。 3. 逻辑结构设计阶段 逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对齐进行优化。 4. 物理设计阶段 物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 5. 数据库实施阶段 在数据库实施阶段,设计人员运用DBMS提供的数据库语言(如SQL)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 3.2 数据库需求分析 用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出[9]。收集基本数据,组成一份详尽的数据字典,为后面的详细设计打下基础。针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构: 读者信息包括:字段ID号、登录用户名、登录密码、用户类型; 图书信息包括:图书名称、出版社名称、图书作者姓名、出版日期、价格、拥有该书的册数; 图书借阅与归还包括:借阅者姓名、借阅图书名称、借书日期、还书日期、图书是否归还; 3.3 数据库概念结构设计 根据以上对系统所作的需求分析、系统设计,规划出本系统中使用的数据库实体分别为图书信息实体、图书类别实体、图书订购实体、读者信息实体、操作员信息实体、图书借阅信息实体、库存信息实体。其中图书信息实体与图书订购实体、图书分类实体、图书订购实体、图书借阅信息实体、库存信息实体都有关系,而读者信息实体与图书借阅信息实体同样具有关系。下面将介绍几个关键实体的E-R图。 3.3.1 图书信息实体 图书信息实体包括图书编号、图书类别编号、书名、作者、译者、出版社、价格、出版时间等属性。其中,图书编号为图书信息实体的主键,图书类别编号为图书信息实体的外键,与图书类别实体具有外键关系。图书信息实体的E-R图如图3-1所示。 图书 编号 出版时间 书名 作者 类别编号 出版社 译者 价格 图3-1 图书信息实体E-R图 3.3.2 读者信息实体 读者信息实体包括条形码、姓名、性别、年龄、电话、押金、生日、职业、证件类型、办证日期、最大借书数量、证件号码等属性。读者条形码作为本实体的唯一标识。其中,在性别属性标识信息中,“1”代表此读者为男性,“2”代表此读者为女性;最大借书数量属性设置默认值为3;而在证件属性标识信息中,“0”代表身份证,“1”代表军人证,“2”代表学生证,“3”代表工作证。读者信息实体的E-R图如图3-2所示。 职业 读者 姓名 最大借书数量 年龄 电话 性别 办证日期 证件类型 证件号码 押金 生日 条形码 图3-2 读者信息实体E-R图 3.3.3 图书借阅信息实体 图书借阅信息实体包括编号、图书编号、读者编号、操作员编号、是否归还、借阅日期、归还日期等属性。编号作为图书借阅信息实体的唯一标识,它包括两个外键,分别为图书编号与读者编号,图书借阅信息实体以这两个外键与图书信息实体、读者信息实体建立了关系。图书借阅信息实体的E-R图如图3-3所示。 图书借阅 编号 归还日期 操作员编号 图书编号 读者编号 借阅日期 是否归还 图3-3 图书借阅信息实体E-R图 3.3.4 图书分类实体 图书分类实体包括编号、类别名称等属性。图书分类实体与图书信息实体以图书类别编号建立了关系。图书分类实体的E-R图如图3-4所示。 图书分类 编号 罚款金额 类别名称 可借天数 图3-4 图书分类实体E-R图 3.3.5 图书订购实体 图书订购实体主要包括图书编号、订购日期、订购数量、操作员、是否验收和折扣等属性。图书订购实体以图书编号与图书信息实体建立了关系。图书订购实体的E-R图如图3-5所示。 图书订购 订购日期 是否验收 订购数量 图书编号 折扣 操作员 图3-5 图书订购实体E-R图 3.3.6 操作员信息实体 操作员信息实体主要包括编号、姓名、性别、年龄、身份证号、工作日期、电话、是否为管理员和密码等属性。其中,性别属性信息中“1”代表男性,“2”代表女性;是否为管理员属性信息中“0”代表当前用户不是管理员,“1”代表当前用户是管理员。操作员信息实体的E-R图如图3-6所示。 操作员 编号 是否为管理员 性别 年龄 姓名 工作日期 密码 身份证号 电话 图3-6 操作员信息实体E-R图 3.3.7 库存信息实体 库存信息实体主要包括编号、库存数量等属性。库存信息实体以库存编号与图书信息实体建立了关系。库存信息实体的E-R图如图3-7所示。 图书订购 编号 库存信息 图3-7 库存信息实体E-R图 3.4 数据库逻辑结构设计 1. 图书信息表如图3-8所示: 图3-8 图书信息表 2. 读者信息表如图3-9所示: 图3-9 读者信息表 3. 图书借阅信息表如图3-10所示: 图3-10 图书借阅信息表 4. 图书分类信息表如图3-11所示: 图3-11 图书分类信息表 5. 图书订购表如图3-12所示: 图3-12 图书订购信息表 6. 操作员信息表如图3-13所示: 图3-13 操作员信息表 7. 库存信息表如图3-14所示: 图3-14 库存信息表 第4章 系统的详细设计与测试 4.1 公共模块设计 在开发过程中,经常会用到一些公共模块,如数据库连接及操作的类、限制文本框输入长度的类以及描述组合框索引与内容的类等,因此,在开发系统前首先需要设计这些公共模块。下面将具体介绍图书管理系统中公共模块的数据过程。 4.1.1 数据库的链接及操作类的编写 数据库连接及操作类通常包括连接数据库的方法getConnection()、执行查询语句的方法executeQuery()、执行更新操作的方法executeUpdate()、关闭数据库链接的方法close()。下面将详细介绍如何编写图书管理系统中的数据库连接及操作的类Dao.java。步骤如下: 1. 指定类dao.java保存的包,并导入所需的包,本例将其保存到com.wsy.dao包中。 2. 在dao.java类的构造方法中创建数据库连接操作。在此类中首先定义数据库连接驱动包名、数据库连接路径、数据库连接用户名、密码等静态变量,然后在构造函数中实现数据库连接操作。在数据库连接代码中需要添加try…catch关键字,捕捉数据库连接时可能抛出的异常。 3. 创建执行查询语句的方法executeQuery(),其返回值为ResultSet()结果集。首先需要初始化Dao对象,调用构造函数,从而获取数据库连接。有一点值得注意,就是在创建数据库连接之前首先判断数据库连接是否为空,如果为空再创建数据库连接,避免造成程序资源的浪费。 4. 创建执行更新操作的方法executeUpdate(),它的返回值为int型的整数,此返回值代表数据表更新操作是否成功,返回值为1代表成功,返回值为-1代表没有成功。 5. 为了避免运行程序时资源的浪费,优化项目运行速度,需要在完成数据库操作后,关闭数据库连接,所以在Dao.java类中创建了关闭数据库连接的方法close()。为了使数据库连接在程序结束后确定会被关闭,在close()方法中加入了finally()字段,在finally块中将数据库连接置空。 4.1.2 MenuActions类的编写 通常激活同一个命令有多种方法,用户可以通过工具栏中按钮、菜单选择特定的功能。在本系统中,最常用的命令就是弹出内部窗体,将本系统中需要弹出的内部窗体命令统一放入MenuActions类中,主要触发任何一种组件事件时,都会按照统一的方式处理[10]。 Swing包提供了一个非常有用的机制,用来封装命令,并将其连接到多个事件源,这种机制就是Action接口。Action接口有如下方法: 1. puclic void actionPerformed(ActionEvent e) 2. public Object getValue(String key) 3. public void putValue(String key, Object value) 4. public boolean isEnabled() 5. public void setEnabled(boolean b) 6. public void addPropertyChangeListener(PropertyChangeListener listener) 7. public void removePropertyChangeListener(PropertyChangeListener lsn) 其中第一个方法用来实现ActionListener的接口程序,实际上Action接口扩展了ActionListener接口。getValue()与putValue()方法用来存储与提取动作对象的预定义名称与值。 下表列举了几种常用的动作对象的预定义名称。 表4.1 动作对象表 名 称 值 NAME 名称,显示在按钮或菜单上 SMAIL_ICON 小图标,显示在按钮或菜单上 SHORT_DESCRIPTION 简单提示说明,当鼠标放在按钮或菜单上出现提示 LONG_DESCRIPTION 详细提示说明 setEnabled()方法用于开启或禁止动作对象,isEnabled()方法用于检查动作是否启用。 实现Action接口需要将接口中的所有方法都实现,所以在通常情况下都是使用实现该接口的AbstractAction类,本系统中的MenuActions类继承了AbstractAction类,在MenuActions类中只要重写AbstractAction类中的actionPerformed()方法。 在系统中的“更改密码”菜单项采用了MenuActions类的编写。在MenuActions类中创建一个内部类,这个内部类用于创建菜单栏中“更改密码”菜单项的动作对象,在此类的构造函数中创建组件的提示组件提示说明,在actionPerformed()方法执行“更改密码”窗体的弹出操作。 将此内部类的对象作为MenuActions类的成员变量,然后再使用static定义一个静态区域进行初始化。类在被加载时,首先执行static定义的静态区域内部的代码,且只会被执行一次。 同理,菜单栏中其他菜单项与子菜单中的菜单项也是以相同方式被封装到MenuActions类中。 4.1.3 限制文本框长度类的编写 在Swing语句创建的窗体中,当JTxetField组件创建时,可以指定文本框的宽度。 但当JTextField的构造器中设定的宽度并不是用户能输入的字符个数上限,用户可以在文本框中输入一个更长的字符串,此时需要限制用户输入字符串的长度,故创建了限制文本框输入长度的类MyDocument.java。创建此类的具体步骤如下: 1. 创建MyDocument.java类,此类继承PlainDocument类。 2. 在MyDocument.java类中创建两个构造函数,其中一个是有参数的,另一个是无参数的。 3. 重载父类方法inserStrng(),在此方法中限定文本框允许输入字符串长度。 4.1.4 描述组合框索引与内容类的编写 在程序编写的过程中,经常会遇到组合框组件的应用。有时要在窗体的组合框中显示具体内容,通常需要在数据库中存储此组合框的索引值,这时便需要使用一种数据结构将组合框中的内容与索引值联系在一起。Java.util.Map形式是比较好的选择,可以使用Map接口中的put()方法将索引值与具体内容放入集合中,当得到索引值时获取具体内容可以使用Map接口中的get(key)方法。描述组合框索引与内容类的编写步骤如下: 1. 创建组合框组件的索引值与其所对应的内容的Item.java类,这个类中不仅包含代表组合框索引的成员变量id和代表组合框内容的成员变量name,还包括着两个成员变量的setXXX()、getXXX()方法。 2. 创建MapPz.java类,使用Map关联组合框的索引与组合框的具体内容。这里以图书类别编号与图书类别创建组合框为例,首先在此类中初始化Map集合,获取图书类别相关内容,将图书类别相关内容放入Item类中;然后将图书类别编号与图书类别名称放入Map集合中,可以使用put()方法;最后返回类型为Map的集合。 4.1.5 在JLable上添加图片类的编写 为了美化窗体,通常需要在窗体上添加图片。一般情况下使用如方式下添加图片: 1. 在窗体上添加JPanel 2. 在JPanel上添加JLable 3. 将图片初始化为ImageIcon对象 4. 使用JLable.setIcon(ImageIcon)代码实现在窗体上添加图片功能 将上述操作封装在公共类中,命名为CreatecdIcon.java类,在此类中定义一个返回ImageIcon类对象的方法,此方法以当前图片的文件名称为参数初始化一个ImageIcon类对象。 4.2 主窗体的设计 4.2.1 主窗体概述 管理员通过“系统登录”模块的验证后,可以登录到图书管理系统的主窗体。系统主窗体主要包括菜单栏、工具栏。用户在菜单栏中单击任一菜单栏执行相应的功能;工具栏为用户提供了经常使用的功能按钮。 图4-1 主窗体界面图 4.2.2 主窗体技术分析 系统主窗体主要包括菜单栏与工具栏。 单击窗体顶端的菜单栏中的某一菜单项,可以打开下拉菜单,其中包含菜单项与子菜单项。当用户单击下拉菜单中某一菜单项时,窗体中所有的菜单都会被关闭。 在主窗体的设计中,需要创建菜单栏与工具栏,此时用到了JMenuBar类与JToolBar类来创建菜单栏和工具栏。 1. 菜单栏的创建比较简单,使用JMenuBar的构造函数初始化菜单栏,对于每个菜单,需要创建一个对象,就是菜单项名称,最后将顶层菜单添加到菜单栏中,可以使用JMenuBar类的add()方法进行添加。 在顶层菜单中添加菜单项、分隔符与子菜单。其中菜单项可以使用JMenuItem类的构造函数进行初始化,然后使用JMenuBar类的add()方法进行添加;分隔符可以使用JMenuBar类的addSeparator()方法进行添加[11];子菜单栏实质上也是一个菜单栏,与顶层菜单栏创建方式相同,可以使用JMenuBar类的add()方法将子菜单项添加到顶层菜单中。 当用户选择一个菜单时,会引发一个动作事件,需要为每个菜单项添加监听器,重写ActionListener接口中的actionPerformed()方法,在此方法中为菜单栏添加业务逻辑。通常情况下,菜单项触发命令通过实现Action接口。这里设计了公共类MenuAction.java,它继承了AbstractAction类,由于AbstractAction类实现了Action接口,所以继承AbstractAction类就等于实现了Action接口,因此这里使菜单栏添加MenuAction类对象。 2. 主窗体中工具栏的创建也非常简单。工具栏为系统提供了迅速访问常用命令的一系列按钮。完成主窗体中工具栏的创建后同样需要添加MenuAction类对象实现工具栏事件,由于需要在工具栏中添加图标,所以将动作对象添加到按钮中,然后为按钮设置图标。 4.2.3 主窗体的实现过程 主窗体的实现过程如下: 1. 创建Library类,在它的构造函数中设置主窗体相关属性,如窗体大小、窗体标题等相关属性,还可以为窗体设置背景图片,并调用创建菜单栏与工具栏的方法,在主窗体中创建菜单栏与工具栏。 2. 编写创建菜单栏方法,可以初始化JMenuBar类对象创建顶层菜单,并在顶层菜单上添加相关菜单项与子菜单,然后为菜单栏添加图标,为菜单栏添加图标可以使用图标可以使用JMenu类中的setIcon()方法进行添加。 3. 编写创建工具栏的方法,创建工具栏可以使用JToolBar类,创建工具栏后将所有的图标添加至于工具栏中,可以为每个图标加提示。由于在创建MenuActions类时已经为每个内部窗体动作添加了提示信息,所以这里可以不为图标添加提示信息。 4. 最后在Library.java类中的主函数中调用登陆窗体,如果登录成功,初始化Library.java对象;如果登录失败,则弹出提示对话框。 4.3 系统登录模块设计 4.3.1 系统登录模块概述 登陆模块是- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 JAVA 图书 管理 系统 设计 实现
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文