PropertyChangeSupport的使用
- 使用目的
当你需要监听对象属性的变化时,可以使用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的使用的更多相关文章
- java PropertyChangeSupport委托帧听类的使用
要委托的Bean类写法. import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import ...
- PropertyChangeSupport 监听器模式的应用
PropertyChangeSupport 类实现的监听器功能 ,它是java jdk自带的一个类,用于监听某个对象属性的改变来触发相应信息,具体看代码介绍 import java.beans.Pro ...
- PropertyChangeSupport
1 import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; /** * @author h ...
- jface databinding:部分实现POJO对象的监测
在前一篇博文<jface databinding/PojoBindable实现对POJO对象的支持 >中,已经知道直接对POJO对象进行修改,是不能被绑定的UI组件知道的,在上一篇文章中 ...
- GEF的MVC体系结构
摘要: 本文首先介绍了标准的 MVC 体系构架,同时也介绍了最常见的一类 MVC 模式的变种.之后,文章重点介绍了 MVC 结构在 gef 框架中的体现与应用,以及 gef 是如何综合利用工厂模式.命 ...
- Tomcat 学习笔记二
学习一 java.bean.PropertyChangeListener用来监听bean类的属性值改变.当改变时同时执行对应事件.而且是线程安全的.tomcat用此reload的Boolean值改变是 ...
- Java 最常用类(前1000名) 来自GitHub 3000个项目
这篇文章主要介绍了最常用的1000个Java类(附代码示例),需要的朋友可以参考下 分析Github 3000个开源项目,粗略统计如下.括号内的数字是使用频率 0-3000. 下面的列表显示不全,完整 ...
- Drools文档(八) 规则语言参考
规则语言参考 概述 Drools有一个"本地"的规则语言.这种格式在标点符号上非常轻,并且通过"扩展器"支持自然语言和领域特定的语言,使语言能够变形到您的问题领 ...
- SwingWorker
Swing应用程序员常见的错误是误用Swing事件调度线程(Event DispatchThread,EDT).他们要么从非UI线程访问UI组件:要么不考虑事件执行顺序:要么不使用独立任务线程而在ED ...
随机推荐
- SpringJDBC学习之路(1)
本人从事java开发也有一段时间了,项目开发也有好几个.但感觉所有写的代码无非就是搬数据取数据.service层写的逻辑多一点,最近做的一个项目整个项目的结构以及层次发现代码过于臃肿冗余.同样一个方法 ...
- mongodb 3.x connect with credential
package mongoDb; import java.net.UnknownHostException; import java.util.ArrayList; import java.util. ...
- sqlserver修改增删改字段
---新增列 alter table article add addtime0 datetime ---修改列 alter table article ) --删除列 alter table arti ...
- 刪除預裝在windows 10 的app
刪除預裝在windows 10 的app 步驟: 方法一.(易於解除安裝的app) 1. →按"開始標誌" →"所有應用程式" →在想解除的程式圖示上" ...
- delphi DBgrid应用大全
Delphi 语言的数据库编程中,DBGrid 是显示数据的主要手段之一.但是 DBGrid 缺省的外观未免显得单调和缺乏创意.其实,我们完全可以在我们的程序中通过编程来达到美化DBGrid 外观的目 ...
- JQuery flot API文档 中文版
调用plot函数的方法如下: var plot = $.plot(placeholder, data, options) 其 中placeholder可以是JQuery的对象,DOM元素或者JQuer ...
- ImageView及其子类(二)
实例:强大的图片按钮 下面的实例定义了多个图片按钮,并定义了两个ZoomButton.两个ZoomButton的android:src属性分别指定为@android:drawable/btn_minu ...
- JavaScript的4种this调用模式
方法调用模式:函数调用模式:构造器调用模式:apply调用模式: 方法调用模式: 当一个函数被保存为对象的一个属性时,我们称它为一个方法.当一个方法被调用时,this被绑定到该对象. 函数调用模式: ...
- 在Java中打开浏览器
try { Runtime.getRuntime().exec( "explorer http://www.baidu.com"); java.net.URI uri = new ...
- Servlet中进行context属性的同步
Servlet中进行context属性的同步: 必须所有使用context的servlet都进行synchronized才可以实现同步: servlet: package com.stono.serv ...