毕业设计论文-基于JAVA的图书管理系统的设计与实现 下载本文

齐齐哈尔大学毕业设计(论文)

4.4.2 图书信息管理模块技术分析

设计图书信息管理窗体首先设计窗体布局。图书信息添加窗体中主要包括文本框与组合框以及按钮图片背景标签,布局比较简单,可以使用BorderLayout布局管理器。首先将图片背景标签放在窗体北部,将承载着图书信息文本框的面板放在窗体中部,最后将承载着按钮群的面板放置在窗体南部。

图书信息修改窗体比较复杂,除了图书相关信息文本框之外,窗体中还需要摆放一个带滚动条的表格。在这里窗体同样使用BorderLayout布局管理器,首先将背景图片标签摆放到窗体北部,在窗体的中部摆放一个面板,面板中放置表格与图书相关信息文本框,最后将按钮放在窗体的南部。

设计窗体布局后,需要进行事件处理。在本模块中,除了为“修改”按钮添加监听事件之外,还需要为表格添加鼠标监听事件。

在添加图书信息中,需要对用户输入的字符串进行限制,包括字符串位数、字符串内容等,这时需要为相关文本框添加键盘监听事件。

在添加图书信息中,为了避免用户添加相同的图书条形码,引发异常,需要在用户输入图书条形码后与数据库中图书信息表中的条形码进行比较,这时需要在图书条形码文本框中添加焦点监听事件。

4.4.3 图书信息管理模块实现过程

1. 图书信息添加

图书信息添加模块开发步骤如下:

(1)首先创建图书信息添加窗体,可以在构造函数中对此窗体进行布局,由于需要在主窗体内部弹出图书信息添加窗体,所以这里使用内部框架的机制,BookAddIFrame.java类继承了JInternalFrame类。

(2)在图书信息添加窗体中添加按钮监听事件,在事件中的actionPerformed()方法中进行图书信息添加操作,可以将图书信息添加方法在Dao类中编写。在Dao类中编写添加图书信息操作方法后,此方法可以在按钮事件的actionPerformed()方法中调用。

(3)除了“添加”按钮监听事件之外,还要控制图书条形码文本框只能输入数字字符串的键盘监听事件,在重写的keyType()方法中,定义管理员允许输入的字符,如果用户输入字符与上述字符不匹配,将销毁当前字符。

(4)为“关闭”按钮添加按钮监听事件,主要将当前窗口关闭。 2. 图书信息修改

图书信息修改模块开发步骤如下:

(1)与图书信息添加窗体设计相同,图书信息修改窗体也继承了内部框架,同样在构造函数中初始化窗体属性、设计布局。

(2)初始化窗体表格组件

21 21

齐齐哈尔大学毕业设计(论文)

首先创建为图书信息修改窗体中表格组件内容赋值的方法,此方法的参数是List类型的集合。在Dao类中创建查询图书相关信息的方法返回List集合可以作为此方法的参数,这个方法返回一个二维数组。在Dao类中创建查询图书相关信息的方法。创建完成窗体内表格组件后,需要为表格组件添加鼠标监听事件,以便用户单击表格中的某一行记录后,相应地将表格中的数据放置在文本框中。

(3)为“修改”按钮添加按钮监听事件

首先需要在Dao类中创建修改图书相关信息方法。

在BookModiAndDelIFrame类中为“修改”按钮添加按钮监听事件,实现ActionListener接口中的actionPerformed()方法,在这个方法中不仅需要调用Dao类中的图书修改方法,还要限制所有文本框字符串的非法输入,同时为了使图书信息表修改完成后,在窗体中的表格即时显示修改内容,需要将表格模型重新赋予表格中。

4.4.4 单元测试

图书条形码作为图书相关信息表的主键,在图书添加的过程中由管理员输入,如果管理员输入的图书条形码在数据库中已经存在,根据主键规则,会发生异常。这时需要为“书号”文本框添加焦点事件,重写focusLost()方法,此方法为失去焦点方法,可以在此方法中判断用户输入的字符串是否与数据库中的图书条形码重复,实质上就是在用户鼠标焦点离开图书条形码文本框时进行判断。判断操作可以在Dao类中创建数据库查询方法。然后在焦点事件中的focusLost()方法中查找用户输入的条形码是否与数据库中的数据重复,如果重复则弹出相应提示对话框[12]。

4.5 图书借阅、归还模块设计

4.5.1 图书借阅、归还模块概述

图书借阅模块主要用于管理读者借阅图书的信息。管理员输入读者条形码、图书条形码后,在读者相关信息文本框以及图书相关信息文本框中相应显示此读者和书籍的相关内容,这时在窗体表格组件中显示读者信息、图书信息以及借书日期、还书日期等相关字段,当管理员单击“借出当前书籍”按钮,此读者与图书被存放到借阅表中。

图书归还模块主要实现读者还书功能。当读者需要还书时,管理员输入读者条形码,按Enter键,在窗体表格中显示读者借阅图书相关信息,在表格中单击某一行数据,在罚款相关文本框中显示相应的那内容等,最后管理员单击“图书归还”按钮,完成图书归还操作。

22 22

齐齐哈尔大学毕业设计(论文)

图4-5 图书借阅管理

图4-6 图书归还管理

23 23

齐齐哈尔大学毕业设计(论文)

4.5.2 图书借阅、归还模块技术分析

图书借阅模块主要用到了键盘监听事件的keyTyped()方法,重写此方法,使用KeyEvent类中的getKeyChar()方法获取当前按钮的键值,如果是Enter键,查询此读者的相关内容,同理可以查询图书的相关内容。

获取读者与图书的相关信息,在“借出当前图书”按钮监听事件中将相关信息插入图书借阅表中。这里存在一个难点,就是如何获取应还日期。在图书类别表中可以获取此类图书允许借阅的天数,将当前借阅时间加上此类图书允许借阅的天数,得到图书应还的时间。在这里使用Date类中的getDate()方法获取当前时间是某月的某一天,然后将此数值与此类图书允许借阅的天数求和之后再使用setDate()方法获取应还时间。图书借阅模块窗体中设置了一个清除表格内容的按钮——“清除所有记录”。其中table.getRowCount()是获取表格行数的方法。

在图书借阅模块窗体中还设置了一个显示当前时间的文本框,文本框中的时间是动态变化的。这里使用了Timer类机制,将Timer对象放入文本框的监听事件中。

图书归还模块与图书借阅模块设计原理基本相同,唯一不同的是按钮事件实现的功能不同,图书归还模块主要是在“图书归还”按钮事件中将图书借阅表中的“是否归还”字段设置为0,0代表借阅书籍已经归还,1代表借阅图书没有归还,表中“是否归还”字段默认值为1。

由于图书归还窗体中设计显示图书借阅相关信息的表格,表格内容需要查询多表字段内容,所以需要应用内联接机制进行查询。内连接机制用于返回所有连接表中具有匹配值的行,而排除所有其他的行。

4.5.3 图书借阅、归还模块的实现过程

1. 图书借阅

开发图书借阅模块步骤如下:

(1)在类构造函数中创建窗体布局以及相关属性。

(2)为读者条形码文本框添加键盘监听事件。当用户输入读者条形码,按Enter键后,触发读者条形码文本框键盘监听事件。在keyType()方法中,调用Dao类中的查询读者相关信息方法,如果在数据库中没有查询到相关信息,弹出相关提示对话框;如果查询到结果,最后将查询结果放入相应文本框中。

(3)同理,在图书条形码文本框键盘监听事件中获取图书条形码文本框内容,调用Dao类中的查询图书相关信息的方法,将图书信息放入相应的文本框中,同时需要将读者信息、图书信息、还书时间、借书时间放入表格中。

(4)在BookBorrowIFrame类中创建一个表格行添加的方法add(),在图书条形码文本框键盘监听事件中调用,实现在管理员输入完图书条形码后,按Enter键,在窗体表格中添加一行数据的功能。在add()方法中,将图书条形码、读者条形码、当前时间、

24 24