`
fanjava
  • 浏览: 229034 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

JavaBean 设置关联属性

阅读更多

在一个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。
记住:对于关联属性来说,首先是属性值发生变化,之后才发送属性变化事件。

分享到:
评论

相关推荐

    JSP实例编程100例

    顺序如下: 1、多种字体大小显示 2、c:out标记输出 3、获取当前时间 4、include包含语句 ...97、设置Bean的一个属性与输入参数关联 98、实现基于数据库的站内搜索 99、DOM读取XML文档 100、SAX读取XML文档

    JAP编程学习100例

    顺序如下: 1、多种字体大小显示 2、c:out标记输出 3、获取当前时间 4、include包含语句 ...97、设置Bean的一个属性与输入参数关联 98、实现基于数据库的站内搜索 99、DOM读取XML文档 100、SAX读取XML文档

    hibernate简介及优缺点

    1.Hibernate持久化类:Hibernate的持久化类是一个JavaBean(pojo+相应属性的getter和setter方法),该JavaBean最好实现java.io.Serializable接口 2.Hibernate映射文件:Hibernate映射文件是Hibernate与数据库进行持久化...

    java实现页面表格数据输出到excel

    * 此方法支持的javabean属性【数据类型有java基本数据类型及 String,Date,byte[](图片转成字节码)】 * @param out 与输出设备关联的流对象,可以将EXCEL文档导出到本地 文件或者网络中 * @param pattern 如果...

    双鱼林java代码生成器 v2.1.zip

    在设计类的同时,就可以完成关联表结构的设计,数据库表的建立完全由hibernate完成在设计基础对象(类)时,可以将部门类(不是部门编号)作为员工类的一个属性,自动生成表间关联代码,在界面上也可以实现部门名称...

    基于模板的代码生成器LKGenerator1.1.0_x86

    ${base-package}包名的默认变量,可在步骤(5)中进行属性值的设置,可以放到路径中,路径中使用时将把配置的点(.)转为路径分隔符(/)使用. ${beans}实体类的类名集合. ${bean}实体类类名首字母变为小写. ${bean.Lname}...

    基于模板的代码生成器LKGenerator1.1.0_x64

    ${base-package}包名的默认变量,可在步骤(5)中进行属性值的设置,可以放到路径中,路径中使用时将把配置的点(.)转为路径分隔符(/)使用. ${beans}实体类的类名集合. ${bean}实体类类名首字母变为小写. ${bean.Lname}...

    J2EE中文版指南 CHM格式 带全文检索

    设置JavaBean组件属性 190 返回JavaBean组件属性 191 第13章 在JSP页面中自定义标签 193 什么是自定义标签? 193 JSP页面的例子 193 使用标签 196 声明标签 196 标签种类 196 简单标签 196 带有属性的标签 196 带体...

    Struts2+API+标签全解+网页说明

    doubleselect标签:生成一个相互关联的列表框,该标签由两个下拉选择框组成。 datetimepicker标签:生成一个日期、时间下拉列表框。 head标签:生成HTML页面的HEAD部分。 file标签:在页面上生成一个上传文件元素...

    Java EE常用框架.xmind

    4,optional属性表示关联的该实体是否能够存在null值,默认为ture,如果设置为false,则该实体不能为null, 5, mapperBy属性:指关系被维护端 1,@JoinColumn注释是保存表与表之间关系的字段 2,如果不设置...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    4.3 事务隔离、传播属性的设置 198 4.3.1 并发访问和隔离 198 4.3.2 事务属性 199 4.4 EJB的事务管理 201 4.4.1 容器管理事务(CMT) 201 4.4.2 Bean管理事务(BMT) 201 4.5 事务超时设置 201 4.6 本章小结 203 第5章 ...

    Spring面试题

    正如我将在下一个示例中演示的那样,Spring 框架使用 JavaBean 属性和配置数据来指出必须设置的依赖关系。 BeanFactory 接口 因为 org.springframework.beans.factory.BeanFactory 是一个简单接口,所以可以针对...

    商城之家JSP商城基于jsp+mysql开发

    自由设定友情链接和页面的关联,自由设定信息和页面的关联。。。功能强大,应用 灵活,全新打造继 陶宝 卓越 当当 等知名电子商务平台的孪生购物交易平台,诚征加盟 后 台 演 示:...

    JSP商城之家商城企业版

    自由设定友情链接和页面的关联,自由设定信息和页面的关联。。。功能强大,应用 灵活,全新打造继 陶宝 卓越 当当 等知名电子商务平台的孪生购物交易平台,诚征加盟 后 台 演 示:...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例234 设置JavaBean级联属性 293 实例235 动态生成JavaBean 295 实例236 复制JavaBean属性 296 实例237 动态排序JavaBean 298 10.5 其他Commons组件简介 299 实例238 优雅的JDBC代码 299 实例239 结果集与Bean列表...

Global site tag (gtag.js) - Google Analytics