《Java技术》第七次作业
《Java技术》第七次作业
(一)学习总结
1.写出事件处理模型中的几个关键词,并通过具体代码实例说明你对事件处理模型的理解。
事件对象(Event object) 事件源(Event Source) 事件监听器(Event Listener)
事件处理模型理解:
编写事件处理程序的基本流程:
-
确定事件源
-
确定事件类型
-
实现监听器类:编写一个类,覆盖监听器接口中的适当方法,至少要实现一种类型的监听器接口,并实现接口中所有的事件处理方法;
-
创建组件,并对组件注册相应的监听器,需要创建监听器对象,将监听器对象作为参数传入组件的add
-
XxxListener方法完成注册;
-
简单的示例:
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; public class AwtTest { JFrame f = new JFrame("Say Hello"); //实例化窗口对象 JTextField tf = new JTextField(30); //定义文本框,并指定长度 JButton ok = new JButton("OK"); //添加OK按钮 class OkListener implements ActionListener { //实现ActionListener接口 public void actionPerformed(ActionEvent e) { tf.setText("Hello!"); } } public void init() { f.add(tf); //把组件tf加入容器中 f.add(ok, BorderLayout.SOUTH);//将ok放在南区域并加入组件 ok.addActionListener(new OkListener()); f.addWindowListener(new WindowAdapter(){ //加入窗口监听 public void windowClosing(WindowEvent aeg0){ //覆写窗口关闭的方法 System.exit(1); } }); f.setSize(230,100); //设置窗口大小 f.setVisible(true); //让组建显示 } public static void main(String[] args) { new AwtTest().init(); } }
(二)实验总结
1.使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
在管理界面实现以下功能:
(1)显示所有宠物列表
(2)添加宠物到列表
(3)删除宠物
(4)对宠物信息进行修改
(5)退出
功能扩展:
用户分为管理员和普通用户两种,增加普通用户注册功能,增加普通用户界面。
实现以下功能:
(1)显示所有宠物
(2)能够按照品种对宠物进行查找
(3)购买宠物
(4)显示购买清单
(5)退出
完成实验内容,代码上传到码云,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。
- 程序设计思路:
1、先设计一个PetItem类,包含number、name、age、cno、price属性,并写出get、set方法。设计一个Administrator类,包含name、mi属性,并写出get、set方法,编写一个验证方法。
2、设计存贮数据DataBase类,将数据存贮在ArrayList中,给出初始数据。
3、设计数据访问AdminDao类,包含获取所有数据,添加数据,删除数据等方法。
4、设计服务AdminService类,包含查询服务,添加服务,修改服务,删除服务等方法,查询服务要调用AdminDao类的queryAllData()方法,获取所有数据。
5、设计WelcomeFrame类,声明一个图片组件和一个按钮组件,设计一个设置窗体的函数,包括窗体大小、窗体位置、标题。添加组件方法,包括按钮组件,标题组件。设计添加监听器方法。设计一个显示管理员界面方法,让它连接到下一个界面。
6、设计Adminis类,声明一个按钮、两个标签,设计一个设置窗体的函数,包括窗体大小、窗体位置、。添加组件方法,包括按钮组件,标题组件。设计添加监听器方法。设计一个显示管理员界面方法,让它连接到下一个界面。设计一个修改的方法调用Administrator类的验证方法。
7、设计系统管理界面, AdminDialog类,定义界面使用的组件,使用JTextField组件输入文本,编写构造方法,初始化方法,添加组件,添加监听器,编写查询方法,调用adminService的查询服务,编写添加方法,删除方法,修改方法。
8、编写工具类,方便WelcomeFrame类调用。
9、设计主方法,调用WelcomeFrame().setVisible(true),运行项目。
类图
![]()
(三)代码托管
- 码云commit历史截图

(四)学习进度条
| 代码行数(新增/累积) | 学习时间(新增/累积) | 本周学习内容 | |
|---|---|---|---|
| 目标 | 5000行 | 300小时 | |
| 第2-4周 | 100/100 | 20/20 | 学习了数组和方法 |
| 第5周 | 200/300 | 30/50 | 学习了String类和StringBuffer类 |
| 第6周 | 800/1100 | 40/90 | 学习了this、static关键字,Singleton模式 |
| 第八周 | 1200/1700 | 60/110 | 继承和多态,抽象方法 |
| 第九周 | 1500/2000 | 70/120 | 接口、工厂设计模式、包装类、匿名内部类、日期类、正则表达式 |
| 第十周 | 1900/2400 | 80/130 | 异常处理、泛型、集合 |
| 第十一周 | 2500/3000 | 100/150 | 用户图形界面、事件处理 |

浙公网安备 33010602011771号