·您的位置: 首页 » 资源教程 » 编程开发 » JAVA、JSP » JavaBean 设置关联属性

JavaBean 设置关联属性

类别: JAVA教程  评论数:0 总得分:0
在一个Bean中设置关联属性的基本步骤如下:

调入java.beans 包,以便访问该包中所定义的一些方便类。MyButton中的import语句的使用方法如下:

import java.beans.*;


实例化java.beans.PropertyChangeSupport类。

private PropertyChangeSupport changes = new
PropertyChangeSupport(this);

MyButton创建了一个名为changes的新对象,它是PropertyChangeSupport类的实例,变量changes保存的是监听对象的集合,一旦关联属性发生变化,就会通知到这些对象。该变量定义了两个支持的方法: addPropertyChangeListener和 removePropertyChangeListener,这两个方法提供了公共的接口,可以让感兴趣的监听者对MyButton进行注册。


实现由PropertyChangeSupport 类定义的方法。
PropertyChangeSupport类包含了添加和移去监听对象的方法,尤其是PropertyChangeListener对象。AddPropertyChangeListener方法添加一个新的监听对象到表中,而removePropertyChangeListener方法则从表中移去一个监听对象。PropertyChangeSupport 类也包含第三个方法:firePropertyChange,该方法把PropertyChangeEvent对象发送给感兴趣的监听者。MyButton包含的实现添加和移去监听者方法的代码如下:
注意:参数l 表示property change listener Bean,该Bean可以作为注册或者移去其兴趣。

public void addPropertyChangeListener(
PropertyChangeListener l) {
changes.addPropertyChangeListener(l);
}public void removePropertyChangeListener(
PropertyChangeListener l) {
changes.removePropertyChangeListener(l);
}


修改Bean的关联属性的setter方法。
对于那些打算成为关联属性的属性,可以修改Bean的setter方法,以便包含当属性值变化时就发送事件的代码。MyButton在每一个设置新属性值的方法内调用firePropertyChange方法。例如,当一个应用程序或者用户改变了按钮的字体时,这个动作就执行了MyButton.setFont方法。因为firePropertyChange方法对于变化了的属性的新值和旧值都需要, setFont方法首先通过调用getFont方法获得旧值,之后设置新值,改变了原先的值之后,再调用changes.firePropertyChange方法通知感兴趣的监听者。changes.firePropertyChange方法传递了三个参数:发生变化的属性名,属性的旧值,该属性的新值。

public void setFont(Font f) {
Font old = getFont();
super.setFont(f);
sizeToFit();
changes.firePropertyChange(
"font", old, f);
}

对于firePropertyChange方法来说,它完成了哪些事情?该方法把它的三个参数绑定到一个PropertyChangeEvent对象中。之后把PropertyChangeEvent对象作为参数,调用propertyChange方法。把PropertyChangeEvent对象传递给每个注册过的监听者。记住:propertyChange把属性的旧值和新值作为对象值对待。这一点很重要,如果你的属性值是个简单类型,你就必须对该类型重新定义为对象,例如,一个简单的整数类型,在调用firePropertyChange之前,就要转化为java.lang.Integer。
记住:对于关联属性来说,首先是属性值发生变化,之后才发送属性变化事件。




-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:
纯粹空间 softpure.com
Copyright © 2006-2008 暖阳制作 版权所有
QQ: 15242663 (拒绝闲聊)  Email: faisun@sina.com
 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛   Valid XHTML 1.0 Transitional
百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1