Java 第七次作业
(一).学习总结#
1.事件处理模型中的关键词及其具体代码实例##
-
委派事件模型
- 当事件发生时,产生事件的对象(即事件源),会把此信息传给事件的聆听者处理的一种方式
-
事件源
- 事件源是一个产生(或触发)事件的对象。当这个事件源对象的某些状态以某种方式发生变化时,就会产生某种类型的事件
(一个事件源可能会生成多个不同类型的事件)。如果某个组件(对象)希望得到事件源产生的事件,就需要在这个事件源上注册。
- 事件源是一个产生(或触发)事件的对象。当这个事件源对象的某些状态以某种方式发生变化时,就会产生某种类型的事件
-
事件
- 事件就是承载事件源状态改变时的信息对象。
java.awt.event
包和javax.swing.event
包中定义了各种事件类,类名以
Event结尾。
- 事件就是承载事件源状态改变时的信息对象。
-
事件监听器接口
API
对于每种事件都定义了对应的接口,接口中定义了处理该事件的方法,这些接口称为事件监听器接口。事件源产生一个事件,可以传送给事件监听者处理。 事件监听者实际上就是一个类,该类实现了某个事件监听器接口du
对接受到的事件进行处理。
-
实例
- 使用匿名内部类进行事件处理
send.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
output.append(input.getText()+"\n");
input.setText("");
}
});
2.其他需要总结的内容##
-
事件处理步骤
-
确定事件源
确定事件源:即发生事件的组件。Quit
按钮 -
确定事件类型
确定事件源后,根据要处理事件确定事件类型。比如点击按钮事件是ActionEvent
关闭窗口事件是WindowEvent
-
确定事件监听器接口,实现接口
确定事件类型后,需要进一步确定处理该事件的监听器接口确定接口后,需要自定义事件处理类实现该接口。 -
覆盖监听器接口中的适当方法
自定义类实现监听器接口后,需要覆盖监听器中特定的方法。事件处理机制会根据用户的不同操作自动调用不同的方法。 -
事件源注册监听器
实现监听器后,需要对事件源注册监听器,方能生效。每个组件都有一系列的addXXXListener
方法可以用来为组件注册不同的监听器。
-
-
注册事件监听器的三种方法
-
通过接口实现
-
事件适配器
-
匿名内部类
-
(二)实验总结#
1.宠物商店##
-
程序设计思路:
-
第一步,创建
WelcomeFrame
界面,点进入系统按钮进入宠物商店管理界面 -
第二步,创建
PetItem
宠物类存放宠物属性,创建DataBase
数据类,存放初始化的宠物信息,GUITools
类对于界面组件显示的方法 -
第三步,
AdminDao
类是对管理界面的按钮组件功能进行实现,AdminService
类是对AdminDao
类中的方法进行判断,AdminDialog
类是对宠物商店管理界面的按钮组件功能进行实现,MainApp
是运行项目类
-
-
类图:
-
欢迎界面
-
宠物商店管理界面
-
问题1:退出按钮出现不了,出现之后又出现半个
-
原因:界面宽度不够
-
解决方案:将界面大小的宽度400改成500,将
exitBtn.setBounds(700, 400, 120, 50)
改成exitBtn.setBounds(350, 400, 120, 50)
-
问题2:删除按钮出现不了,界面上的字会有重叠
-
原因:按钮设置的位置大小不合适
-
解决方案:将窗口大小改为
this.setSize(500,450)
(三)代码托管#
https://git.oschina.net/hebau_cs15/hebau-cs01GHJ.git