java.beans.PropertyChangeListener

 1 import java.beans.PropertyChangeEvent;
 2 import java.beans.PropertyChangeListener;
 3 import java.beans.PropertyChangeSupport;
 4
 5 public class DemoBeans {
 6
 7     private String demoName;
 8     private String Version;
 9     PropertyChangeSupport listeners = new PropertyChangeSupport(this);
10
11     public DemoBeans() {
12         demoName = "initValue";
13         Version="v1000";
14     }
15
16
17     public String getDemoName() {
18         return demoName;
19     }
20
21
22     public void setDemoName(String demoName) {
23         String oldValue = this.demoName;
24         this.demoName = demoName;
25         //发布监听事件
26         firePropertyChange("demoName", oldValue, demoName);
27
28     }
29
30     public void setDemoVersion(String demoVersion) {
31         String oldVersion = this.Version;
32         this.Version = demoVersion;
33         //发布监听事件
34         firePropertyChange("demoVersion", oldVersion, demoVersion);
35
36     }
37     public void addPropertyChangeListener(PropertyChangeListener listener) {
38         listeners.addPropertyChangeListener(listener);
39     }
40
41     public void removePropertyChangeListener(PropertyChangeListener listener){
42         listeners.addPropertyChangeListener(listener);
43     }
44
45
46     /**
47      * 触发属性改变的事件
48      */
49     protected void firePropertyChange(String prop, Object oldValue, Object newValue) {
50         listeners.firePropertyChange(prop, oldValue, newValue);
51     }
52     public static void main(String[] args) {
53         DemoBeans beans = new DemoBeans();
54
55         beans.addPropertyChangeListener(
56                 new PropertyChangeListener(){
57             public void propertyChange(PropertyChangeEvent evt) {
58                  if(evt.getPropertyName().equals("demoVersion")){
59                      System.out.println("version_OldValue:"+evt.getOldValue());
60                      System.out.println("version_NewValue:"+evt.getNewValue());
61                      System.out.println("version_tPropertyName:"+evt.getPropertyName());
62                  }
63                  else
64                  {
65                      System.out.println("name_OldValue:"+evt.getOldValue());
66                      System.out.println("name_NewValue:"+evt.getNewValue());
67                      System.out.println("name_tPropertyName:"+evt.getPropertyName());
68                  }
69
70             }});
71
72
73         beans.setDemoName("test");
74         beans.setDemoVersion("v2000");
75
76     }
77 }  
时间: 2024-11-08 14:04:34

java.beans.PropertyChangeListener的相关文章

zoj 3714 Java Beans

#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<stack> #define mem(a,b) memset(a,b,sizeof(a)) #define ll __int64 #define MAXN 1000 #define INF

java.beans包的XMLEncoder和XMLDecoder实现实体与xml转换

package j2se.core.base;   import java.beans.XMLDecoder; import java.beans.XMLEncoder; import java.io.*; import java.util.ArrayList; import java.util.List;   /**  * Created by Lenovo on 2015/11/26.  */ public class XMLUtil {     /**      * 读取由objSourc

JavaFX TableView和Java Beans Pattern Convention

Computer Science II 课上的作业老师要求完成一个Course Schedule的Exporter,在后台界面需要实现三个表格:Holiday Schedule, Lecture Schedule, Assignments Schedule. 某位同学忙活了半天好不容易创建了一个TableView,但是当edit表中的cell的时候,对应的值总是不变.昨天晚上看了十几分钟把我之前做错的点全部都过了一遍,依然找不到错误.不过秉承着死磕到底的精神,今天看了Oracle的TableVi

Oracle EBS Form Builder使用Java beans创建窗体

最近有个项目,需要研究一下Oracle的E-Business Sutie(EBS),对于以前没接触此套件的我来说,简直太痛苦了.在网上找了一堆资料,试着进行Form二次开发,也遇到各类奇葩问题.目前遇到最大的一个问题是,如何在本地 Form Builder中进行窗体构建,并调用后台的JavaBean对窗体进行交互?网上也有不少的解决方案,但是都存在一些差异,试了很多次,终于实现了我预期的效果. 为了防止以后再遇到类似的问题,先做一个记录,以备后查. 1.环境搭建说明  服务器:Oracle EB

解决java.beans.Introspector导致的内存泄漏

解决方案: 在WEB.XML 中配置监听器: <listener> <listener-class> org.springframework.web.util.IntrospectorCleanupListener </listener-class> </listener> 原因: 在Web应用程序关闭时IntrospectorCleanupListener将会刷新JDK的JavaBeans的Introspector缓存.在你的web.xml中注册这个lis

【TOJ 3242】FatMouse and Java Beans(dp)

描述 FatMouse is lucky enough for it found a rectangular box in a storehouse which contains his favorite food-JavaBeans.The box is splited into r*c cells, and in each cell there are some JavaBeans in it.The problem is to determine the maximum amount of

Java重要技术(15)内省之属性改变事件和投票否决事件

1.1. 属性改变事件和投票否决事件 PropertyChangeSupport类为Java Bean支持属性改变事件提供了方便. /** * @Title: EventBean.java * @Package com.test.javatechnology.introspection * @Description: * @author http://www.cnblogs.com/coe2coe/ * @date 2017年3月25日 下午6:02:36 * @version V1.0 */

java语法糖

语法糖 Java语法糖系列,所以首先讲讲什么是语法糖.语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这些语法做一些处理,开发者就可以直接方便地使用了.这些语法糖虽然不会提供实质性的功能改进,但是它们或能提高性能.或能提升语法的严谨性.或能减少编码出错的机会.Java提供给了用户大量的语法糖,比如泛型.自动装箱.自动拆箱.foreach循环.变长参数.内部类.枚举类.断言(assert)等 断言(as

java设计模式--观察者模式和事件监听器模式

文章转载于:http://www.java2000.net/p9452 复习设计模式,看到observer观察者模式,说法是该模式和iterator迭代器模式类似已经被整合进jdk,但是jdk提供了两种接口: 一.java.util.Observer -- 观察者接口 对应: java.util.Observable --受查者根类 二.java.util.EventListener -- 事件监听/处理接口 对应: java.util.EventObject -- 事件(状态)对象根类 研究了