哪里有网站建设流程无锡机关单位建设网站
web/
2025/10/4 17:52:15/
文章来源:
哪里有网站建设流程,无锡机关单位建设网站,网站设计分析怎么写,网站设计难点今天要处理的问题是#xff1a;监听一个变量#xff0c;当该变量的值出现变化时能够获知#xff0c;并进行相应处理。使用java.bean.PropertyChangeSupport类。看如下的构造方法#xff0c;其实就是将你要控制的对象绑定到该工具中。PropertyChangeSupport changes new Pr…今天要处理的问题是监听一个变量当该变量的值出现变化时能够获知并进行相应处理。使用java.bean.PropertyChangeSupport类。看如下的构造方法其实就是将你要控制的对象绑定到该工具中。PropertyChangeSupport changes new PropertyChangeSupport(aclass);使用到如下3种方法changes.addPropertyChangeListener(listener);changes.removePropertyChangeListener(listener);changes.firePropertyChange(name, null, name);分别是注册监听器移除监听器和触发一个监听事件。其中name就是aclass中一个String属性变量。MyClass aclass newMyClass();PropertyChangeSupport changes newPropertyChangeSupport(aclass);changes.addPropertyChangeListener(newPropertyChangeListener() {Overridepublic voidpropertyChange(PropertyChangeEvent evt) {//TODO Auto-generated method stubSystem.out.println(change);}});String straclass.getName();aclass.setName(11);changes.firePropertyChange(name, str, aclass.getName());使用匿名内部类来实现监听器在propertyChange方法中实现你要的处理。该方法会在firePropertyChange触发了事件之后捕获该事件然后执行。也可以通过implements PropertyChangeListener接口实现。当bean的属性发生变化时使用PropertyChangeSupport对象的firePropertyChange方法它会将一个事件发送给所有已经注册的监听器。该方法有三个参数属性的名字、旧的值以及新的值。属性的值必须是对象如果是简单数据类型则必须进行包装。注意如果str 和aclass.getName()也就是旧值和新值是相同的不会触发事件。如果将str改为Null,则都会触发事件。结果change因为一般变量值的变化都是调用了setter方法所以我们可以在MyClass中直接绑定PropertyChangeSupport对象。然后在需要监听的属性的setter方法中调用firePropertyChange方法并将添加监听器和移除监听器的方法也由在MyClass中实现。简单的对MyClass修改如下。public classMyClass {private String name 1;private String age 2;private PropertyChangeSupport changes new PropertyChangeSupport(this);public voidsetName(String name) {String OldName this.name;this.name name;changes.firePropertyChange(name, OldName, name);}publicString getName() {returnname;}public voidsetAge(String age) {this.age age;}publicString getAge() {returnage;}public voidaddPropertyChangeListener(PropertyChangeListener listener) {changes.addPropertyChangeListener(listener);}public voidremovePropertyChangeListener(PropertyChangeListener listener) {changes.removePropertyChangeListener(listener);}}然后由该类直接调用MyClass aclass newMyClass();aclass.addPropertyChangeListener(newPropertyChangeListener() {Overridepublic voidpropertyChange(PropertyChangeEvent evt) {//TODO Auto-generated method stubSystem.out.println(evt.getPropertyName());System.out.println(evt.getOldValue());System.out.println(evt.getNewValue());}});aclass.setName(new);输出结果name1new可以参考http://zhangjunhd.blog.51cto.com/113473/36838/http://www.blogjava.net/fuxueliang/archive/2006/07/18/58738.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86904.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!