Swing 事件模型

来源:互联网 发布:js获取某个class 编辑:程序博客网 时间:2024/05/22 12:56
在Swing的事件模型中,组件可以发起(触发)一个事件。每种事件的类型由单独的类表
示。当事件被触发时,它将被一个或多个“监听器”接收,监听器负责处理事件。所以,
事件发生的地方可以与事件处理的地方分离开。既然是以这种方式使用Swing组件,那么
就只需编写组件收到事件时将被调用的代码,所以这是一个分离接口与实现的极佳例子。


所谓事件监听器,就是一个“实现了某种类型的监听器接口的”类的对象。所以程序员要
做的就是,先创建一个监听器对象,然后把它注册给触发事件的组件。这个注册动作是通
过调用触发事件的组件的addXXXListener( )方法来完成的,这里用“XXX”表示监听器
所监听的事件类型。通过观察“addListener”方法的名称,就可以很容易地知道其能够处
理的事件类型,要是你把所监听事件的类型搞错了,在编译期间就会发现有错误。在本章
的后面将会学习到,JavaBean也是使用“addListener”方法的名称来判断某个Bean所
能处理的事件类型的。


然后,所有的事件处理逻辑都将被置于监听器类的内部。要编写一个监听器类,唯一的要
求就是必须实现相应的接口。你可以创建一个全局的监听器类,不过有时写成内部类会更
有用。这不仅是因为将监听器类放在它们所服务的用户接口类或者业务逻辑类的内部时,
可以在逻辑上对其进行分组;而且还因为(你将在后面看到)内部类对象含有一个对其外

部类对象的引用,这就为跨越类和子系统边界的调用提供了一种优雅的方式。


原创粉丝点击