《《界面层开发》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《界面层开发》PPT课件.ppt(62页珍藏版)》请在金锄头文库上搜索。
1、1第14章 界面层开发编写编写GUI类查找图书类查找图书实现图书管理主界面实现图书管理主界面在单独窗口中添加新图书在单独窗口中添加新图书添加顾客添加顾客214.1 编写GUI类查找图书图书查询界面的框架使用图书查询界面的框架使用BorderLayoutBorderLayout布局管理器。布局管理器。 314.1 编写GUI类查找图书“查询条件查询条件”右面使用组合框,组合框中设置三个选右面使用组合框,组合框中设置三个选项:空、书名、作者。项:空、书名、作者。可将选项放在字符串数组可将选项放在字符串数组searchwaydatasearchwaydata中,并以此为中,并以此为参数生成参数生成J
2、ComboBoxJComboBox组件。组件。 使用使用searchWay.getSelectedIndex()searchWay.getSelectedIndex()方法就可以得到方法就可以得到用户的选项。用户的选项。 414.1 编写GUI类查找图书使用下面的代码生成数据表,初始时数据表为空。使用下面的代码生成数据表,初始时数据表为空。 514.1 编写GUI类查找图书假设要查询的书事先存储在向量假设要查询的书事先存储在向量booksbooks中,可以定义下中,可以定义下面的方法初始化面的方法初始化booksbooks的值。的值。 614.1 编写GUI类查找图书当用户选择了查询方式,并在
3、后面的当用户选择了查询方式,并在后面的inputStringinputString文本文本框中输入了查询字符串,单击框中输入了查询字符串,单击【查询查询】按钮,则调用按钮,则调用事件处理程序在事件处理程序在booksbooks中查找符合条件的图书(定义中查找符合条件的图书(定义search_Booksearch_Book方法实现),结果存储到方法实现),结果存储到myVectormyVector向量中。向量中。 714.1 编写GUI类查找图书定义定义search_Booksearch_Book方法:在方法:在booksbooks中查询字符串中查询字符串s s是否存是否存在,在,flag=0f
4、lag=0时返回所有时返回所有booksbooks中的所有图书,中的所有图书,flag=1flag=1时时按书名查询,按书名查询,flag=2flag=2时按作者查询,最后返回查询结果。时按作者查询,最后返回查询结果。 814.1 编写GUI类查找图书定义定义search_Booksearch_Book方法方法914.1 编写GUI类查找图书BookSearchBookSearch类定义类定义 1014.1 编写GUI类查找图书BookSearchBookSearch类定义类定义 1114.1 编写GUI类查找图书BookSearchBookSearch类定义类定义 1214.1 编写GUI类
5、查找图书1314.1 编写GUI类查找图书BookSearchBookSearch类定义类定义 1414.1 编写GUI类查找图书BookSearchBookSearch类定义类定义 1514.1 编写GUI类查找图书运行效果运行效果 1614.2 实现图书管理主界面实现图书管理界面布局实现图书管理界面布局 定义定义BookGUIBookGUI类实现类实现SwingSwing风格的图书管理界面。风格的图书管理界面。 1714.2 实现图书管理主界面为了突破为了突破JTableJTable构造方法的限制,需要定义自构造方法的限制,需要定义自己的己的TableModeTableMode类类MyTa
6、bleMode;MyTableMode;将将booksbooks的值作为参数带到的值作为参数带到MyTableModeMyTableMode类中。类中。1814.2 实现图书管理主界面BookGUIBookGUI类定义类定义1914.2 实现图书管理主界面BookGUIBookGUI类定义类定义2014.2 实现图书管理主界面BookGUIBookGUI类定义类定义2114.2 实现图书管理主界面BookGUIBookGUI类定义类定义2214.2 实现图书管理主界面事件响应:编写事件响应:编写【增加增加】按钮的事件响应代码,并加到按钮的事件响应代码,并加到构造方法构造方法BookGUI()B
7、ookGUI()中,放在最后。中,放在最后。 2314.2 实现图书管理主界面点击点击【增加增加】按钮,系统在图书列表区增加一行,但最按钮,系统在图书列表区增加一行,但最左一列显示的是左一列显示的是“falsefalse”。 2414.2 实现图书管理主界面为了在最左列显示未选中的复选框,需要在为了在最左列显示未选中的复选框,需要在MyTableModelMyTableModel类的定义中增加类的定义中增加getColumnClassgetColumnClass方法。方法。 2514.2 实现图书管理主界面要对列表区中的数据进行编辑,还需要在要对列表区中的数据进行编辑,还需要在MyTableM
8、odelMyTableModel类的定义中增加下面的两个方法:类的定义中增加下面的两个方法: 2614.2 实现图书管理主界面修改按钮点击事件的响应修改按钮点击事件的响应2714.2 实现图书管理主界面删除按钮点击事件的响应:删除某本书时要先选中前面的复选框,删除按钮点击事件的响应:删除某本书时要先选中前面的复选框,再单击删除按钮即可。如果没有选中任何行,则没有提示。再单击删除按钮即可。如果没有选中任何行,则没有提示。 2814.2 实现图书管理主界面删除按钮点击事件的响应:改进,增加提示。删除按钮点击事件的响应:改进,增加提示。 2914.2 实现图书管理主界面删除按钮点击事件的响应:改进,
9、增加提示。删除按钮点击事件的响应:改进,增加提示。 3014.3 在单独窗口中添加新图书在列表中增加一行,并进行编辑修改,这种方在列表中增加一行,并进行编辑修改,这种方式适合属性较少的情况。式适合属性较少的情况。对于实际的应用系统,属性的数量可能很多,对于实际的应用系统,属性的数量可能很多,不能将所有的属性都显示在列表中。不能将所有的属性都显示在列表中。 在这种情况下,增加一行或对列表中的某一行在这种情况下,增加一行或对列表中的某一行进行修改都需要弹出单独的窗口。进行修改都需要弹出单独的窗口。3114.3 在单独窗口中添加新图书创建添加新图书的操作界面创建添加新图书的操作界面 开发开发GUIG
10、UI类类AddBookAddBook,以便输入图书属性值。,以便输入图书属性值。 3214.3 在单独窗口中添加新图书创建添加新图书的操作界面创建添加新图书的操作界面 此框架使用三行一列的此框架使用三行一列的GridLayoutGridLayout管理器。管理器。最上部为标签,显示最上部为标签,显示“学海书店学海书店”;中间部分为书的属性输入部分,为了使显示内容在框架中间部分为书的属性输入部分,为了使显示内容在框架的水平方向上居中,使用四行三列的的水平方向上居中,使用四行三列的GridLayoutGridLayout管理器,管理器,最后一列的内容为空;最后一列的内容为空;框架的最下部为功能按钮
11、区,可使用框架的最下部为功能按钮区,可使用FlowLayoutFlowLayout管理器。管理器。 3314.3 在单独窗口中添加新图书创建添加新图书的操作界面创建添加新图书的操作界面 addBookaddBook方法从文本框中检索数据并使用检索的数据创方法从文本框中检索数据并使用检索的数据创建建BookBook实例。实例。 3414.3 在单独窗口中添加新图书创建添加新图书的操作界面创建添加新图书的操作界面 addBookaddBook类定义类定义 3514.3 在单独窗口中添加新图书创建添加新图书的操作界面创建添加新图书的操作界面 addBookaddBook类定义类定义 3614.3 在
12、单独窗口中添加新图书创建添加新图书的操作界面创建添加新图书的操作界面 addBookaddBook类定义类定义 3714.3 在单独窗口中添加新图书创建添加新图书的操作界面创建添加新图书的操作界面 addBookaddBook类定义类定义 3814.3 在单独窗口中添加新图书创建添加新图书的操作界面创建添加新图书的操作界面 addBookaddBook类定义类定义 3914.3 在单独窗口中添加新图书创建添加新图书的操作界面创建添加新图书的操作界面 addBookaddBook类定义类定义 4014.3 在单独窗口中添加新图书创建添加新图书的操作界面创建添加新图书的操作界面 更改图书管理界面中
13、更改图书管理界面中【增加增加】按钮的事件响应,取消原按钮的事件响应,取消原来的事件响应代码,并将下面的代码加到构造方法来的事件响应代码,并将下面的代码加到构造方法BookGUIBookGUI()()中。中。 4114.3 在单独窗口中添加新图书创建添加新图书的操作界面创建添加新图书的操作界面 在图书管理界面中点击在图书管理界面中点击【增加增加】按钮,就会弹出添加新按钮,就会弹出添加新图书窗口。如果再点击图书窗口。如果再点击【增加增加】按钮,则又会弹出一个按钮,则又会弹出一个添加新图书窗口。添加新图书窗口。 4214.3 在单独窗口中添加新图书应用单例模式应用单例模式单例模式是限制类实例只有一个
14、对象的一种设单例模式是限制类实例只有一个对象的一种设计模式。计模式。实现方法:实现方法:(1) (1) 修改现有构造方法访问权限修改现有构造方法访问权限publicpublic为为privateprivate,从,从而防止外部程序直接调用构造方法实例化对象。而防止外部程序直接调用构造方法实例化对象。4314.3 在单独窗口中添加新图书应用单例模式应用单例模式(2) (2) 在类中加入静态方法,用于对外提供获取类实例的在类中加入静态方法,用于对外提供获取类实例的方法:方法: 4414.3 在单独窗口中添加新图书应用单例模式应用单例模式(3)(3)图书管理界面中图书管理界面中【增加增加】按钮的事件
15、响应代码应修改按钮的事件响应代码应修改如下:如下: 4514.3 在单独窗口中添加新图书应用单例模式应用单例模式对对AddBookAddBook类中的类中的shutDown()shutDown()方法修改如下:方法修改如下: 4614.4 添加顾客开发开发GUI类类AddCustomer该类可用于向书店管理系统中添加新顾客。该类可用于向书店管理系统中添加新顾客。介绍如何使用单选按钮介绍如何使用单选按钮RadioButtonRadioButton类和类和CardLayoutCardLayout布局管理器。布局管理器。 4714.4 添加顾客与顾客相关的类图与顾客相关的类图 4814.4 添加顾客
16、新增教师界面新增教师界面 4914.4 添加顾客新增学生界面新增学生界面 5014.4 添加顾客AddCustomer类的定义类的定义 初始定义如下:初始定义如下: 5114.4 添加顾客AddCustomer类的定义类的定义 构造方法构造方法5214.4 添加顾客AddCustomer类的定义类的定义 构造方法构造方法5314.4 添加顾客AddCustomer类的定义类的定义 构造方法构造方法5414.4 添加顾客AddCustomer类的定义类的定义 构造方法构造方法5514.4 添加顾客AddCustomer类的定义类的定义 构造方法构造方法5614.4 添加顾客AddCustomer
17、类的定义类的定义 增加事件响应增加事件响应5714.4 添加顾客AddCustomer类的定义类的定义 增加增加clearForm()clearForm()及及shutDown()shutDown()方法方法5814.4 添加顾客AddCustomer类的定义类的定义 增加增加addCustomer()addCustomer()方法方法5914.4 添加顾客AddCustomer类的定义类的定义 增加增加addTeacher()addTeacher()方法方法6014.4 添加顾客AddCustomer类的定义类的定义 增加增加addStudent()addStudent()方法方法6114.
18、5 本章小结本章继续实践了组合框、本章继续实践了组合框、JTable组件、单选按钮组件、单选按钮及及CardLayout布局管理器的使用。布局管理器的使用。 在图书查询功能中,介绍了如何使用下拉选择框在图书查询功能中,介绍了如何使用下拉选择框让用户选择查询方式,如何在让用户选择查询方式,如何在Vector中查询符合中查询符合条件的图书并显示在条件的图书并显示在JTable组件上。组件上。结合添加新图书的操作界面,介绍了单例模式的结合添加新图书的操作界面,介绍了单例模式的使用。使用。结合添加顾客界面,介绍了单选按钮及结合添加顾客界面,介绍了单选按钮及CardLayout布局管理器的使用。布局管理器的使用。 62