• 使用目的

  当你需要监听对象属性的变化时,可以使用PropertyChangeSupport类来管理监听器,可以在一些关联属性的场合使用。

  • 使用示例,以下为BetaConfig对象添加了管理属性监听器的权限  
public class BetaConfig implements Serializable{

    private static final long serialVersionUID = 1L;

    private int serverPort = 8012;

    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);

    public void addPropertyChangeListener(final String propertyName,final PropertyChangeListener listener) {
changeSupport.addPropertyChangeListener(propertyName, listener);
} public void removePropertyChangeListener(final PropertyChangeListener listener) {
changeSupport.removePropertyChangeListener(listener);
} public int getServerPort() {
return serverPort;
} public void setServerPort(int serverPort) {
//将属性的改变通知给监听,让监听器可以得知此改变
changeSupport.firePropertyChange("serverPort", this.serverPort, serverPort);
this.serverPort = serverPort;
}
}
  • 现在对BetaConfig的serverPort属性监听其变化,用addPropertyChangeListener方法,进行监听添加声明
final BetaConfig config = new BetaConfig();
config.addPropertyChangeListener("serverPort", new PropertyChangeListener() {
  @Override
  public void propertyChange(PropertyChangeEvent evt) {
  logger.info("{} {} update to {}",evt.getPropertyName(),evt.getOldValue(),evt.getNewValue());
  }
});

  添加完监听,再执行 config.setServerPort(8000),改变其serverPort的值,监听器的propertyChange方法跟随执行。

PropertyChangeSupport的使用的更多相关文章

  1. java PropertyChangeSupport委托帧听类的使用

    要委托的Bean类写法. import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import ...

  2. PropertyChangeSupport 监听器模式的应用

    PropertyChangeSupport 类实现的监听器功能 ,它是java jdk自带的一个类,用于监听某个对象属性的改变来触发相应信息,具体看代码介绍 import java.beans.Pro ...

  3. PropertyChangeSupport

    1 import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; /** * @author h ...

  4. jface databinding:部分实现POJO对象的监测

    在前一篇博文<jface databinding/PojoBindable实现对POJO对象的支持  >中,已经知道直接对POJO对象进行修改,是不能被绑定的UI组件知道的,在上一篇文章中 ...

  5. GEF的MVC体系结构

    摘要: 本文首先介绍了标准的 MVC 体系构架,同时也介绍了最常见的一类 MVC 模式的变种.之后,文章重点介绍了 MVC 结构在 gef 框架中的体现与应用,以及 gef 是如何综合利用工厂模式.命 ...

  6. Tomcat 学习笔记二

    学习一 java.bean.PropertyChangeListener用来监听bean类的属性值改变.当改变时同时执行对应事件.而且是线程安全的.tomcat用此reload的Boolean值改变是 ...

  7. Java 最常用类(前1000名) 来自GitHub 3000个项目

    这篇文章主要介绍了最常用的1000个Java类(附代码示例),需要的朋友可以参考下 分析Github 3000个开源项目,粗略统计如下.括号内的数字是使用频率 0-3000. 下面的列表显示不全,完整 ...

  8. Drools文档(八) 规则语言参考

    规则语言参考 概述 Drools有一个"本地"的规则语言.这种格式在标点符号上非常轻,并且通过"扩展器"支持自然语言和领域特定的语言,使语言能够变形到您的问题领 ...

  9. SwingWorker

    Swing应用程序员常见的错误是误用Swing事件调度线程(Event DispatchThread,EDT).他们要么从非UI线程访问UI组件:要么不考虑事件执行顺序:要么不使用独立任务线程而在ED ...

随机推荐

  1. C# 调用外部dll(转)

    C# 调用外部dll   一.      DLL与应用程序 动态链接库(也称为DLL,即为"Dynamic Link Library"的缩写)是Microsoft Windows最 ...

  2. Spring.NET 的IOC(依赖注入)

    (1)  ioc,意思是Inversion of control,(反转控制),控制反转,就是交换控制权的意思.现在一般不使用这个词,一般使用dependency injection(依赖注入).依赖 ...

  3. Nodejs之编辑器ueditor

    ueditor编辑器的使用说明. 最近在找nodejs前台界面可以编辑文字发表文章的工具,后来找到了ueditor,感觉还不错,就拿来使用了一下,使用过程如下. 1.下载及准备 下载ueditor,官 ...

  4. MySQL——数据类型

    MySQL中定义数据字段的类型对你数据库的优化是非常重要的.MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 一.字符串类型: 字符串类型指CHAR.VARCHAR.B ...

  5. Windows与Linux文件系统互访的几种方法

    首先,我们知道基于文件的几种服务:ftp,sftp,这两种服务都是文件传输服务,偏重于网络传输,并不是实时互访.通常,我们需要在远程和本地 同时操作同一个目录,如:在Windows下使用各种强大的ID ...

  6. 建立、配置和使用Activity——启动其他Activity并返回结果

    Activity还提供了一个startActivityForResult(Intent intent,int requestCode)方法来启动其他Activity.该方法用于启动指定Activity ...

  7. java UUID的创建

    java UUID的创建: 参考:http://blog.csdn.net/yaerfeng/article/details/7070369 可以研究一下最后的一段代码: http://spiritf ...

  8. jQuery 动画的执行

    jQuery 动画的执行 <%@ page language="java" import="java.util.*" pageEncoding=" ...

  9. cvc-complex-type.2.4.c: The matching wildcard...

    在家里的电脑好好的,在单位的就不行,需要把web app libraties提到 最前面,然后clean一下项目

  10. FlashPlayer11 异步解码 Bitmap

    Flash Player 11引入了一个全新的功能是异步解码位图的功能,这个功能对某些类型的Flash应用会很有效,尤其是需要加载大分辨率的位图的相册或游戏会有显著效果,使用位图图像时,可以异步解码和 ...