回到顶部
您的当前位置: 编程语言> JAVA> JAVA基础> 系列教程
Java进阶(七)JavaBeans和bean事件
2014-04-04 14:38:51
标签: 网络整理 Java 进阶 JavaBeans和bean事件

每个Java用户界面类都是一个JavaBeans组件。

一:JavaBeans

JavaBeans是一种软件组件体系结构,在诸如NetBeans和Eclipse等一些纯Java开发工具中,它能够在设计中可视化地操作结构良好的对象,从而极大地扩展了Java语言的能力。这些结构良好的对象被称作JavaBeans,简称为beans。定义beans的类称为JavaBeans组件或bean组件。

符合JavaBeans组件模型的类满足下面的要求:

1)bean必须是公共类。

2)尽管bean可能有其他构造方法,但是必要时必须有一个公共的无参构造方法。

3)bean必须实现接口java.io.Serializable,以确保其持续性。

4)bean的属性通常带有构造恰当的公共访问器方法和修改器方法。

5)bean的事件可能带有构造恰当的、公共的注册方法和注销方法。

前三个条件必须满足,因此,这三个条件称为JavaBeans组件的最低要求。

二:bean属性

属性是相互分离的,它们以影响Java bean外观或行为的特殊来命名,通常是bean的数据域。

1)属性的命名方式

bean属性的命名方式是JavaBeans组件模型的一个约定,用来简化bean开发者对属性的表示。属性可能是基本数据类型,也可能是对象类型。

一般来说,访问器方法命名为get<PropertyName>(),它不带参数,返回一个与属性类型一致的基本数据类型值或对象。

2)属性和数据域

属性描述bean的状态。很自然地,数据域用于存储属性。然而,bean属性未必是一个数据域。

例如,

public int getMessageLength() {
  return message.length();
}

三:事件模型回顾

一个bean可以与其他bean相互通信。Java事件委托模型为bean发送、接收和处理事件提供基础。Java事件模型由下面三种类型的元素组成:

① 事件对象

② 源对象

③ 事件监听器对象

1)事件类和事件监听器接口

事件对象是使用像ActionEvent、MouseEvent这样的事件类来创建的。

每个事件类与一个事件监听器接口关联,这种接口定义一个或多个称为处理器的方法。

由于事件类与它的监听器接口是相互依存的,所以经常称其为事件组或事件对。

2)源组件

产生事件的组件称为事件源。每个Java GUI组件都是一个或多个事件的事件源。

源组件包含用于检测引发事件外部或内部动作的代码。

3)监听器组件

一个事件的监听器组件必须实现事件监听器接口。

一个监听器组件可以实现任意多个监听器接口,以便监听多种类型的事件。

四:创建自定义源组件

源组件必须有适当地注册与注销方法,用来添加和删除监听器。事件可以单点传送,也可以多点传送。添加一个单点传送监听器的命名方式为:

public void add<Event>Listener(<Event>Listener l)
  throws TooManyListenersException;

添加多点传送监听器的命名方式同上面一样,但是不会抛出TooManyListenersException异常。

public void add<Event>Listener(<Event>Listener l)

删除一个监听器的命名方式为:

public void remove<Event>Listener(<Event>Listener l)

源组件包含特定的代码,可以创建事件对象,以及通过传递这个事件对象去调用监听器的处理器。

五:创建自定义事件组

Java API提供了许多事件组。使用Java API中已存在的事件组是很方便的,但这往往不够。有时候,为了获得用现有API事件类不可能获得的信息,需要声明自定义事件类。

自定义事件类必须扩展java.util.EventObject类或者java.util.EventObject类的一个子类。

自定义事件监听器接口必须扩展java.util.EventListener接口或者java.util.EventListener接口的一个子类接口。