java 卷一阅读,有书共读】java核心技术卷1--第11章

==============java核心技术卷1第11章----事件处理===================主要内容:1事件处理基础2动作3鼠标事件4 AWT事件集成层次===========================================================

1、任何支持GUI的操作环境都要不断地监视按键或点击鼠标这样的事件。

像Java这样的面向对象语言, 都将事件的相关信息封装在一个事件对象(event object )中。在Java中, 所有的事件对象都最终派生于java.util.EventObject类。每个事件类型还有子类, 例如,ActionEvent和WindowEvent。

AWT事件处理机制的概要:

•***对象是一个实现了特定***接口(listener interface)的类的实例。

•事件源是一个能够注册***对象并发送事件对象的对象。

•当事件发生时,事件源将事件对象传递给所有注册的***。

•***对象将利用事件对象中的信息决定如何对事件做出响应。

一个***类有多个实例的情况并不多见。更常见的情况是: 每个***执行一个单独的动作。在这种情况下, 没有必要分别建立单独的类。只需要使用一个lambda表达式:exitButton.addActionListener(event -> Systeu.exit(O));

可以通过扩展适配器类来指定对某些事件的响应动作, 而不必实现接口中的每个方法。

2、Swing包提供了一种非常实用的机制来封装命令,并将它们连接到多个事件源,这就是Action接口。一个动作是一个封装下列内容的对象:

•命令的说明(一个文本字符串和一个可选图标);

•执行命令所需要的参数。

如果动作对象添加到菜单或工具栏上,它的名称和图标就会被自动地提取出来, 并显示在菜单项或工具栏项中。

总结一下用同一个动作响应按钮、菜单项或按键的方式:

1 )实现一个扩展于AbstractAction类的类。多个相关的动作可以使用同一个类。

2 )构造一个动作类的对象。

3 )使用动作对象创建按钮或菜单项。构造器将从动作对象中读取标签文本和图标。

4 )为了能够通过按键触发动作, 必须额外地执行几步操作。首先定位顶层窗口组件,例如, 包含所有其他组件的面板。

5 )然后, 得到顶层组件的WHEN_ANCESTOR_OF_FOCUS_COMPONENT输入映射。为需要的按键创建一个KeyStrike对象。创建一个描述动作字符串这样的动作键对象。将(按键, 动作键)对添加到输人映射中。

6 )最后, 得到顶层组件的动作映射。将(动作键, 动作对象)添加到映射中。

3、鼠标操作将由用户界面中的各种组件内部处理。

当用户点击鼠标按钮时, 将会调用三个***方法: 鼠标第一次被按下时调用mousePressed ;鼠标被释放时调用mouseReleased; 最后调用mouseClicked。如果只对最终的点击事件感兴趣, 就可以忽略前两个方法。用MouseEvent类对象作为参数, 调用getX和getY方法可以获得鼠标被按下时鼠标指针所在的x和y坐标。

鼠标点击由mouseClicked过程报告, 它是MouseListener接口的一部分。

4、 AWT将事件分为底层(low-level)事件和语义(semantic )事件。语义事件是表示用户动作的事件, 例如,点击按钮;因此,ActionEvent是一种语义事件。底层事件是形成那些事件的事件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值