第七次java作业
《Java技术》第七次作业
(一)学习总结
1.写出事件处理模型中的几个关键词,并通过具体代码实例说明你对事件处理模型的理解。
-
事件源:是一个产生(或触发)事件的对象。当这个事件源对象的某些状态以某种方式发生变化时,就会产生某种类型的事件(一个事件源可能会生成多个不同类型的事件)。如果某个组件(对象)希望得到事件源产生的事件,就需要在这个事件源上注册。
-
事件:就是承载事件源状态改变时的信息对象。java.awt.event包和javax.swing.event包中定义了各种事件类,类名以Event结尾。
-
事件监听器接口:API对于每种事件都定义了对应的接口,接口中定义了处理该事件的方法,这些接口称为事件监听器接口。监听器接口以Listener结尾。如ActionListener接口处理ActionEvent事件。
-
事件源产生一个事件,可以传送给事件监听者处理。事件监听者实际上就是一个类,该类实现了某个事件监听器接口,对接受到的事件进行处理。
-
事件处理的基本步骤:
1. 首先产生监听器,监听是否有事件源的产生.
2. 在要实现具有事件处理功能的组件上注册监听器.
3. 注册监听器的组件产生事件源,并将事件对象返回给监听器.
4. 有监听器调用相应的方法处理事件.
例如:
//添加一个监听器,用来监听btn按钮
private void addListener() {
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
showAdminDialog(); //事件发生调用该方法
}
});
(二)实验总结
实验内容:
使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
在管理界面实现以下功能:
(1)显示所有宠物列表
(2)添加宠物到列表
(3)删除宠物
(4)对宠物信息进行修改
(5)退出
功能扩展:
用户分为管理员和普通用户两种,增加普通用户注册功能,增加普通用户界面。
实现以下功能:
(1)显示所有宠物
(2)能够按照品种对宠物进行查找
(3)购买宠物
(4)显示购买清单
(5)退出
完成实验内容,代码上传到码云,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。
-
程序设计思路:创建一个数据库,将宠物类和用户类存入,用户类中设置ArrayList属性,用来存放购买的宠物,实现三个主方法,管理员登陆,用户注册,用户登录,设置管理员服务类和用户服务类,在类内实现添加,删除和修改内容,在用户服务类中实现购物清单和按类型查找的功能。
-
欢迎界面
-
注册界面
-
用户界面
-
问题1:无法调用数据库中的用户类。
-
原因:数据库中的用户类应为static类型
-
解决方案:
public static ArrayList<User> data2 = new ArrayList<User>();
- 问题2:用户的查找和购买清单功能,如果重新写一个表格或者界面过于复杂。
- 原因:直接生成消息窗口,使用StringBuffer来输出信息
- 解决方案:
for(int i=0;i<user.get(0).getPet().size();i++){
sum = sum+user.get(0).getPet().get(i).getPrice();
buf.append(user.get(0).getPet().get(i).getKind()+" 价格: "+user.get(0).getPet().get(i).getPrice()+"\n");
}
JOptionPane.showMessageDialog(this,buf+"\n总价格"+sum);
(三)代码托管
- 码云commit历史截图