1、摘要 图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。图书馆若采取手工方式对图书资料和图书借阅情况进行人工管理,由于资料繁多,手工处理的工作量大,整体管理效率低下,也不方便读者对图书资料的查阅[1]。为了提高日常的图书管理效率,本文针对通常的图书管理流程,以C/S模式设计了一个图书管理系统,可满足大多数中小型的图书管理要求。 本文探讨了Java语言和Eclipse软件开发工具的技术特点以及结合SQL 2000数据库,实现了一个通用的图书管理系统。也介绍了该系统的整个系统分析、设计以及
2、实现的过程,包括需求分析、功能模块的分析与设计、数据模式的分析与设计. 关键词:图书管理系统,SQL 2000数据库,Java语言 ABSTRACT Since volumes of book management activities have to take place daily in library, it will be a hard work and be low efficiency if only manual operations are adopted in the management. To up
3、grade their management efficiency, people would like to develop various Book Management Systems to help their daily work. In this paper a book management system built in Client/Server model is designed, which can meet requirements of most library management for its integration of general library tra
4、nsaction management processes. This article examines the java language and eclipse software development of the technical characteristics and combining the database, sql 2000 to a general library management system and introduce the system of the systems analysis, designing and implementation process
5、es including requirements analysis, the functional modules of the analysis and design, data, the analysis and design. Keywords: Library management system. sql 2000 database, the java language 目录 摘要 I ABSTRACT II 第1章 引言 1 1.1 背景 1 1.2 研究内容,目的和意义 2 第2章 开发工具简介 3 2.1 ECLIPSE简介 3
6、 2.2 ECLIPSE发展 4 2.3 ECLIPSE的优势 4 2.4 ECLIPSE的体系结构 6 第3章 图书管理系统需求分析 7 3.1 图书管理现状 7 3.2 可行性分析研究 7 3.3 系统模块功能解析 8 3.4 系统模块化分析 9 3.5 系统E-R图 10 3.6 系统流程图及分析 11 第4章 系统逻辑和物理设计 13 4.1 数据库的设计 13 4.2 数据库的维护 14 第5章 系统的详细设计与实现 16 5.1 系统登录 16 5.2
7、 系统主界面 18 第6章 系统测试与分析 24 6.1 部分功能测试 24 6.2测试总结 24 第7章 结论 25 致谢 26 参考文献 27 附录:源代码 28 28 第1章 引言 1.1 背景 社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。书籍做为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择。与此同时,为了管理大量的图书,图书管理系统也
8、大量的出现,图书的管理问题也就提上了日程。随着图书的大量增加,其管理难度也越来越大,如何优化图书的日常管理也就成为了一个大众化的课题。 在计算机飞速发展的今天,将计算机这一信息处理利器应用于图书的日常管理已是势必所然,而且这也将为图书管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为企业的飞速发展提供无限潜力。采用计算机管理信息系统已成为图书管理科学化和现代化的重要标志,它给企业管理来了明显的经济效益和社会效益。主要体现在:极大提高了图书管理人员的工作效率,大大减少了以往入出存流程繁琐,杂乱,周期长的弊端。基于图书管理的全面自动化,可以减少入库管理、出库管理及库存管理中的漏洞,可以
9、节约不少管理开支,增加企业收入。图书的管理的操作自动化和信息的电子化,全面提高了图书管理水平。随着我国改革开放的不断深入,经济飞速的发展,企业要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,图书管理的全面自动化、信息化则是其中极其重要的部分。为了加快图书管理自动化的步伐,提高图书的管理业务处理效率,建立图书管理系统已变得十分需要。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管
10、理的前提。本系统就是为了管理好图书馆信息而设计的[2]。 图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本,表格等纸介质的手工处理,对于图书借阅情况(如借书天数,超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限,以及借阅天数等用人工计算,手抄进行。数据处理工作量大,容易出错。由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发
11、挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基于环境。 基于这个问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时,准确,有效的查询和修改图书情况。 1.2 研究内容,目的和意义 针对各大中专院校的图书管理现状,设计出适合一般学校的计算机辅助图书管理系统。实现对图书基本信息、读者基本信息进行计算机辅助管理,完成借书和还书有关信息的记录、修改、查询、删除等一系列任务的计算机管理与实现。 从图书管理,借阅管理,读者管理,系统管理四个部分来组成一个完整的系统。 需要解决的问题:采用各模块独
12、立调试,整体合成测试的方法。各个模块应能独立使用。 随着Internet的普及,越来越多的学校建立了自己的WWW网站,学校通过网站可以展开日常办公,与学生进行交流和沟通等。 其中图书信息管理系统是作为一个学校管理的重要组成部分,通过它可以实现对各种图书信息,读者信息,图书借阅信息进行有效的管理,从而解决了传统人工操作的低效率性,易出错性。该系统使用Java语言开发, 实现了图书信息管理,使得对信息的管理更加及时、高效,提高了工作效率[3]。 该系统是基于C/S模式实现,基于Eclipse平台架构开发设计,随着Internet/Intranet技术的兴起,将原本在单机或本地局域网上运行的数
13、据库系统移植到因特网中,即开发基于C/S模式的新一代MIS(Management Information System,管理信息系统)系统,正成为技术发展的趋势。为了保证系统性能的高效性、可扩展性,以及达到数据共享和网络化管理的目的,本系统采用C/S体系结构进行设计开发。 第2章 开发工具简介 2.1 Eclipse简介 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具。 Eclipse最初是由IBM公司开发的替代商业
14、软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会管理。 2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。 2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。 Eclipse是著名的跨平台的自由集成开发环境。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。
15、许多软件开发商以Eclipse为框架开发自己的IDE[4]。 Eclipse 最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT 和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、Rational Software、Red Hat及Sybase等。Eclipse是一个开发源码项目,它其实是 Visual Age for Java的替代品,其界面跟先前的Visual Age for J
16、ava差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。 虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境,这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse
17、 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 2.2 Eclipse发展 2009年Eclipse建模社区真的表现出众。所有人似乎都正在使用EMF,并在探索诸如CDO、XText和GMF等其它项目。 2009年,Eclipse 4.0团队开始编写代码。他们完成了最初的0.9版,为在2010年推出正式版取得了不错的进展。 从行业角度来看,云计算和移动开发是两大热门趋势。从Eclipse角度来看,Eclipse是另种趋势IDE选择的事实标准。 在2010年: Eclipse 4.0将是社区谈论的主要话题。我认为,诸如支持OpenSo
18、cial gadgets、用JavaScript编写的程序包和使用EMF来建模UI等功能,将对社区具有重大影响[5]。 总的来说JavaScript将对Eclipse和整个行业益发重要。我认为,这一点将体现在移动领域、Eclipse 4.0以及OSGi世界。 我认为,人们将对EclipseRT和OSGi更加感兴趣。Eclipse Gemini将增加功能到Equinox,这对OSGi在大型企业的应用非常重要。大型应用服务器厂商已经开始与它们的大客户讨论OSGi。 2.3 Eclipse的优势 目前全球有上百万人在使用Eclipse进行开发。为什么Eclipse拥有如此众多的拥趸?这与
19、Eclipse集众多特性于一身有很大关系。 Eclipse 是开放源代码的软件。这意味着Eclipse不仅可以免费使用,还可以通过研究源代码学习世界上顶尖开发人员的编程技术,并可以共享遍布全球的开发人员所贡献的公共开放源代码库。 Eclipse是真正可扩展并可配置的。Eclipse采用插件机制,犹如一个花瓶,你可以随时向花瓶里面插花,也可以很容易将不再需要的花取出。目前,互联网上免费的、收费的插件遍地开花,插件开发工作在国内外也如火如荼。 Eclipse支持众多的开发语言而不仅仅是Java。Eclipse只是给开发人员提供了一个能够扩展系统功能的最小核心,基于扩展点的插件体系结构使得
20、Eclipse支持多种语言成为可能。只要安装相应语言的插件,Eclipse就可以支持该种语言的开发。目前,Eclipse已经可以支持C、COBOL、PHP、Perl、Python等多种语言。 Eclipse提供了对多重平台特性的支持。开发者可以使用他们感觉最舒适、最熟悉的平台,例如Windows、Linux、MacOS等。Eclipse对每个平台都有其单独的图形工具包,这使得应用程序具有接近本地操作系统的外观和更好的性能。 基于业界领先的OSGi规范。OSGi规范最早由Sun Microsystems、IBM、爱立信等于1999年推出,其服务平台包括:服务网关、汽车、移动电话、工业自动化、
21、建筑物自动化、PDA网格计算、娱乐(如iPronto)和 IDE等。基于OSGi的系统以微内核形式运行,因而能够轻松实现软件业界梦寐以求的可热插拔、动态改变行为、稳定高效的系统。Eclipse从3.1开始,毅然抛弃了其原有的已经获得业界认可的框架,采用OSGi作为其架构。从Eclipse3.2版本开始,Eclipse提供了基于OSGi开发的支持,开发者可以利用其开发基于OSGi的系统了[6]。 Eclipse美轮美奂的人机界面受到广泛赞誉。Eclipse提供了全新的SWT/JFace API(而不是AWT/Swing),一改SWT/Swing单调、沉闷的界面风格,使得开发基于本地的具有丰富图
22、形界面的应用程序成为可能,犹如一股春风吹进Java的桌面开发领域,给人耳目一新的感觉。 Eclipse由业界领先者推出,具有强大的行业力量。Eclipse基金会吸收了大量学术研究机构、商业组织,领导Eclipse的长远规划和发展,并确保Eclipse处于软件工具行业的领先地位。 2.4 Eclipse的体系结构 Eclipse平台体系结构主要由5部分组成,分别是平台运行库、工作区、工作台、团队支持和帮助。图1-1为Eclipse体系结构图。 图2-1 Eclipse体系结构 在运行时内核是整个架构的核心,其他部件都是以插件方式来实现的。Eclip
23、se采用动态加载机制,即只有需要的才加载,这样可以降低启动时间,提高资源使用效率。 工作空间插件即所谓的工作区,主要负责管理用户资源,例如用户创建项目的管理、文件变更等,并负责通知其他插件关于资源变更的信息。 工作台插件是Eclipse 提供的用户界面。它使用标准窗口工具包(SWT)和一个更高级的API(JFace)构建的。SWT是Java的Swing/AWT的非标准替代者,JFace则以SWT为基础,但更易于使用[7]。 团队支持插件负责提供版本控制和配置管理支持。它允许用户根据需要添加视图,并与允许用户使用的任何版本控制系统交互。 帮助插件允许以HTML文件形式添加文档,并
24、提供了一个附加的导航结构以便用户使用帮助功能搜索相关信息。 第3章 图书管理系统需求分析 3.1 图书管理现状 随着计算机技术的飞速发展,其应用方面已渗透到社会生活的各个领域。它已经成为我们学习和工作的得力助手。在学校,尤其是在一些高校,图书是学校的一项重要资源,图书的管理也是学校的一项常规性的重要工作。而长期以来,学生图书管理都是依赖人工进行的。现今,有很多的学校都已经开始使用计算机进行图书信息管理,并且起得良好的效果。近年来我校招生情况越来越好,所以图书管理工作越来越繁重,但由于种种原因,管理人员并没有增加,因此原有的人工管理工作已不能适应现行的工作需要。同时,陈旧的
25、人工管理也不利于推广计算机应用。为使图书管理工作科学化、规范化,就必须采用计算机辅助管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。使用该系统之后,图书馆管理人员可以管理读者的登记、图书的购入、借出、归还以及注销等;还可以查询某位读者、某本图书的借阅情况,对当前借阅情况给出一些统计,给出统计表格,以全面掌握图书的流通情况。 传统的图书信息管理方式有两种:一种是人工操作,各种信息的录入和操作都是记录到纸上,这种方式因为效率太低已不多用;另一种是基于其他计算机技术,将动态网页和数据库结合,通过应用程序来处理各种信息,这是目前较为流行的做法。但是由于其他技术本身的局限性使得系统有一些
26、不可克服的缺陷。 本系统的宗旨是提高图书管理工作的效率,减少相关人员的工作量,使学校的图书管理工作真正做到科学、合理的规划,系统、高效的实施。 3.2 可行性分析研究 系统的可行性分析包括两个详细的部分:分析开发新的系统的必要性和可能性。必要性在前面系统初步调查中已经作了详细的分析,在这里就不再赘述;可能性主要包括经济可行性、技术可行性和运行可行性三个方面。 经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。由于图书信息系统是作为毕业设计由我们学生自己开发的,在经济上的投入甚微,系统建成之后将为今后
27、实现学校图书管理提供很大的方便,因此在经济上是可行的。 技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。图书管理系统用的是Eclipse开发工具,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前C/S模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求[8]。 运行可行性是对组织结构的影响,现有人员和机构、设施设施和环境对系统的适应性及人员培训补充计划的可行性。当前我们学校信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行
28、性的。 3.3 系统模块功能解析 系统功能模块图如下: 图书管理系统 系统管理 读者管理 图书管理 借阅管理 添加用户 更改密码 读者类别管理 读者信息管理 还书管理 借书管理 图书类别管理 图书信息管理 图3-1 系统功能模块图 3.4 系统模块化分析 图书管理部分:包括图书信息管理和类别管理,其功能是实现对各部分数据内容进行添加、修改、查询等操作。各管理部分的明细如下: (1)图书信息管理:包括图书信息的添加、图书信息的修改、图书信息的查询和图书的信息删除4部分。其中,图书信息包括
29、图书编号、书名、图书类别、作者、出版社、出版日期、登记日期以及是否已被借出。 (2)图书类别管理:包括图书类别的添加、图书类别的修改、图书类别的删除3部分功能。其中,图书类别包括类别名称和类别编号两部分。 借阅管理部分:包括借书管理和还书管理,其功能是实现对各部分数据内容的添加和查询等操作。各管理部分的明细如下: (1)借书管理:包括添加借书信息和查询借书信息2部分功能。其中,借阅信息包括借阅编号、读者编号、读者姓名、图书编号、图书名称、出借日期和还书日期。 (2)还书管理:实现添加还书信息功能。其中,还书信息与借阅信息部分明细相同。 读者管理部分:包括读者信息管理和读者类别管理,其
30、功能是实现对各部分数据内容的添加和修改、删除等操作。各管理部分的明细如下: (1)读者信息管理:包括读者信的添加、读者信息的修改、读者信息的查询和读者信息的删除4部分功能。其中,读者信息包括读者姓名、读者编号、性别、读者类别、工作单位、家庭住址、电话号码、登记日期和已借书数量。 (2)读者类别管理:包括读者类别的添加、(本文摘自:易凡工作室)读者类别的修改、读者类别的删除3部分功能。其中,读者类别包括各种类名称、借书期限和有效期限4部分。 系统管理部分:包括修改系统用户密码、增加新用户两项功能。 3.5 系统E-R图 E-R图如下: 出版日期 出版社
31、 单价 翻译 类别 作者 书名 编号 管理员 管理 图书 借阅 办证日期 会员有效期 读者 最大借书量 编号 押金 电话 证件号码 证件类型 职业 性别 年龄 姓名 图3-2 图书管理系统E-R图 3.6 系统流程图及分析 数据流程分析,即把数据在组织(或原系统)内部的流动情况抽象地独立出来,舍去了具体组织机构、信息载体、处理工作、物资、材料等,单从数据流动过程来考查实际业务的数据处理模式。数据流程分析主要包括对信息的流动、传递、处理、存储等
32、的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。 现有的数据流程分析多是通过分层的数据流程图来实现。数据流图(Data Flow Diagram,简称DFD图)是用一些规定的图标和符号来描述数据在系统中的流动和处理情况。数据流图一般要采用自上而下逐步求精的结构化表示方法。软件系统归根结底是一个信息处理系统,其最基本的功能是感受输入信息,对输入的信息按照规定的方法归类、处理以及存储,转变为所需要的信息,最后通过输出系统向用户输出所需求的信息。其中最核心的部分就是信息(数据)处理,因此不同的数据也就决定了所需要的不同的处理方法和算法。数据流图也就是以图形的方式将系统中数据的传递、转化
33、的过程 流程图如下: 图3-3 图书管理系统流程图 第4章 系统逻辑和物理设计 4.1 数据库的设计 根据上面的数据库ER图,现在需要将上面的数据库概念结构转化为SQL Server2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。图书管理信息系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。 表4-1 图书类别表 字段名 数据类型 说明 类别名称 char 必添字
34、段“是”,允许空字符为“否” 类别编号 float 字段大小为50 可借天数 float 字段大小为50 罚款数量 float 字段大小为50 表4-2 图书信息表 字段名 数据类型 说明 图书编号 float 字段大小为50 书名 Char 字段大小为50 类别 Char 字段大小为50 作者 Char 字段大小为50 出版社 Char 字段大小为50 出版日期 时间/日期 无 译者 char 字段大小为50 单价 float 字段大小为50 表4-3 读者信息表 字段名 数据类型 说明
35、 读者编号 char 字段大小为50 姓名 char 字段大小为50 性别 char 字段大小为50 年龄 float 字段大小为50 职业 char 字段大小为50 证件类型 char 字段大小为50 证件号码 float 字段大小为50 最大借书量 float 字段大小为50 会员有效日期 时间/日期 无 电话 float 字段大小为50 押金 float 字段大小为50 办证日期 时间/日期 无 4.2 数据库的维护 由于应用环境不断变化,数据库运行过和中物理存储也会不断变化,对数据库设计进行调整,修改等维护
36、工作是设计工作的继续和提高。对数据库经常性的维护工作主要包括: 1.数据库的转储和恢复 针对不同的应用要求制定不同的转储计划,保证一旦发生故障能尽快将数据库恢复到某种一致的状态,尽可能减少对数据库的破坏。 2.数据库的安全性、完整性控制 在数据库运行过程中由于应用环境的变化,对安全性的要求也会发生变化,如原来机密的数据现在可以公开查询了,新加入的数据又可能是机密的了。系统中用户的密级改变。这都需要根据实际情况修改原有的安全性控制,可以设置数据库密码及用户权限。同样,数据库的完整性的约束条件也会变化,需要DBA不断修正。 3.数据库性能的监督、分析和改造 利用Microsoft
37、SQL Server2000提供的检测系统性能参数的工具,在数据库运行过程中,监督数据进行分析,找出改进系统性能的方法,并做适当调整[9]。 4.数据库的重组及重构造 数据库运行一段时间后,由于记录不断增、删、改,增添、修改的数据不能为空,否则不能保存到数据库中。使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时DBA要对数据库进行重组织,或部分重组织(只对频繁增、删的表进行重组织),可以利用Microsoft SQL Server2000专门提供的数据重组织实用程序操作,按原设计要求重新安排存储位置、回收垃圾、减少指针链等,提高系统性能[10]。 有些情况,如由于数
38、据库应用环境发生变化,增加了新的应用或新的实体,取消了某些应用,有的实体与实体间的联系发生变化,则需要调整数据库的模式及内模式。 第5章 系统的详细设计与实现 5.1 系统登录 系统登录界面: 图5-1 系统登录界面 代码如下:public BookLoginIFrame() { super(); final BorderLayout borderLayout = new BorderLayout(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
39、 borderLayout.setVgap(10); getContentPane().setLayout(borderLayout); setTitle("图书馆管理系统登录"); setBounds(100,100,285,194); final JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); panel.setBorder(new EmptyBorder(0, 0, 0, 0)); getContentPane().add(panel); f
40、inal JPanel panel_2 = new JPanel(); final GridLayout gridLayout = new GridLayout(0, 2); gridLayout.setHgap(5); gridLayout.setVgap(20); panel_2.setLayout(gridLayout); panel.add(panel_2); final JLabel label = new JLabel(); label.setHorizontalAlignment(SwingConstants.CENTER);
41、label.setPreferredSize(new Dimension(0, 0)); label.setMinimumSize(new Dimension(0, 0)); panel_2.add(label); label.setText("用 户 名:"); username = new JTextField(20); username.setPreferredSize(new Dimension(0, 0)); panel_2.add(username); final JLabel label_1 = new JLabel();
42、 label_1.setHorizontalAlignment(SwingConstants.CENTER); panel_2.add(label_1); label_1.setText("密 码:"); password = new JPasswordField(20); password.setDocument(new MyDocument(6)); password.setEchoChar('*');//设置密码框的回显字符 password.addKeyListener(new KeyAdapter() { public vo
43、id keyPressed(final KeyEvent e) { if (e.getKeyCode() == 10) login.doClick(); } }); panel_2.add(password); final JPanel panel_1 = new JPanel(); panel.add(panel_1, BorderLayout.SOUTH); login=new JButton(); login.addActionListener(new BookLoginAction()); logi
44、n.setText("登录"); panel_1.add(login); reset=new JButton(); reset.addActionListener(new BookResetAction()); reset.setText("重置"); panel_1.add(reset); final JLabel tupianLabel = new JLabel(); ImageIcon loginIcon=CreatecdIcon.add("login.jpg"); tupianLabel.setIcon(loginIcon);
45、 tupianLabel.setOpaque(true); tupianLabel.setBackground(Color.GREEN); tupianLabel.setPreferredSize(new Dimension(260, 60)); panel.add(tupianLabel, BorderLayout.NORTH); // setVisible(true); setResizable(false); //setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
46、 } 5.2 系统主界面 系统主界面: 图5-2 系统主界面 代码如下: public Library() { super(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE); setLocationByPlatform(true); setSize(800, 600); setTitle("图书馆管理系统"); JMenuBar m
47、enuBar = createMenu(); // 调用创建菜单栏的方法 setJMenuBar(menuBar); JToolBar toolBar = createToolBar(); // 调用创建工具栏的方法 getContentPane().add(toolBar, BorderLayout.NORTH); final JLabel label = new JLabel(); label.setBounds(0, 0, 0, 0); label.setIcon(null); // 窗体背景 DESKTOP_PANE.addComponen
48、tListener(new ComponentAdapter() {
public void componentResized(final ComponentEvent e) {
Dimension size = e.getComponent().getSize();
label.setSize(e.getComponent().getSize());
label.setText("49、is.getClass().getResource("/backImg.jpg")
+ "'>");
}
});
DESKTOP_PANE.add(label,new Integer(Integer.MIN_VALUE));
getContentPane().add(DESKTOP_PANE);
}
/**
* 创建工具栏
*
* @return JToolBar
*/
private JToolBar createToolBar() { // 创建工具栏的方法
JToolBar toolBar
50、 new JToolBar(); toolBar.setFloatable(false); toolBar.setBorder(new BevelBorder(BevelBorder.RAISED)); JButton bookAddButton=new JButton(MenuActions.BOOK_ADD); //ImageIcon icon=CreatecdIcon.add("bookAdd.bmp");//创建图标方法 ImageIcon icon=new ImageIcon(Library.class.getResource("/bookAd






