`

java中的PropertyChangeSupport与PropertyChangeListener

阅读更多

java中的PropertyChangeSupport与PropertyChangeListener配合使用能够实现,绑定属性会在属性值发生变化时,通知所有相关的监听器。

javaBean:

package com.wang.test.property;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;

public class TestBean {

	protected final PropertyChangeSupport support = new PropertyChangeSupport(this);
	
	private String str;
	
	public String getStr() {
		return str;
	}

	public void setStr(String str) {
		support.firePropertyChange("str", this.str, str);
		this.str = str;
	}
	
	public void addPropertyChangeListener(PropertyChangeListener listener) {
		support.addPropertyChangeListener(listener);
	}
	
	public void removePropertyChangeListener(PropertyChangeListener listener) {
		support.removePropertyChangeListener(listener);
	}
}

 client:

package com.wang.test.property;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

public class PropertyChangeSupportTest {

    public static void main(String[] args) {  
    	
        TestBean test = new TestBean();
        test.setStr("ddddd");
        test.addPropertyChangeListener(new PropertyChangeListener1());
        test.setStr("yyyy");
        
        //test.addPropertyChangeListener(new PropertyChangeListener2());
    	//test.setStr("hhhhhhf");
    }  
      
    public static class PropertyChangeListener1 implements PropertyChangeListener{

		@Override
		public void propertyChange(PropertyChangeEvent evt) {
			System.out.println( "1:  " + evt.getPropertyName() + "   " + evt.getNewValue() + "   " + evt.getOldValue());
			
		}
    }
    
    public static class PropertyChangeListener2 implements PropertyChangeListener{

		@Override
		public void propertyChange(PropertyChangeEvent evt) {
			System.out.println( "2:  " + evt.getPropertyName() + "   " + evt.getNewValue() + "   " + evt.getOldValue());
			
		}
    }
}

 

1
0
分享到:
评论

相关推荐

    详解java中的PropertyChangeSupport与PropertyChangeListener

    详解 Java 中的 PropertyChangeSupport 与 PropertyChangeListener Java 中的 PropertyChangeSupport 和 PropertyChangeListener 是 JavaBeans 规范中两个重要的类,它们用于实现属性变化的监听和通知。下面我们将...

    用js实现和Java中的PropertyChangeSupport类似的观察者模式

    闲着没事,突然想起Java的观察者模式中有一个PropertyChangeSupport与PropertyChangeListener,于是就想看看用js能不能也实现一个,毕竟有时候js写的东西也需要一个观察者模式,于是就写了点东西,应该能派上用场。

    PropertyChangeListener

    `PropertyChangeSupport` 类位于 `java.beans` 包中,用于简化对 `PropertyChangeListener` 的管理。使用该类可以轻松地实现关联属性的支持。下面详细介绍如何使用 `PropertyChangeSupport` 类: - **创建实例**:...

    使用PropertyChangeSupport监控变量

    在Java编程中,`PropertyChangeSupport` 是一个用于实现属性更改通知机制的工具类,它在JavaBeans规范中被广泛使用。这个类帮助开发者轻松地为对象添加属性变更监听器,以便在对象的属性发生变化时通知其他感兴趣的...

    java Swing带复选框的树

    JavaBeans的PropertyChangeSupport和PropertyChangeListener可以实现这一点。 9. **性能优化**:对于大型数据集,你可能需要考虑虚拟化技术,只在需要时绘制可见的节点,以提高性能。 通过以上这些知识点,你可以...

    DesignPatternJava

    "DesignPatternJava"这个主题着重于如何在Java环境中应用设计模式,特别是其中的"PropertyChangeSupport"部分,这是一个与事件处理相关的模式。 "PropertyChangeSupport"是JavaBeans组件模型的一部分,主要用来支持...

    treetable

    Java中的JavaBeans PropertyChangeSupport和PropertyChangeListener可以用于实现这一点。 9. **第三方库**:虽然Java Swing提供了基本的TreeTable实现,但许多开发者会选择使用第三方库,如JIDE Common Library或...

    JavaBean - Bound属性

    3. **添加PropertyChangeSupport对象**:在JavaBean类中,添加一个`java.beans.PropertyChangeSupport`对象作为成员变量,用于管理属性更改事件。例如`private PropertyChangeSupport pcs = new ...

    PropertyChangeSupportPlugin:使用字节码编织为带注释的 bean 添加 PropertyChangeListener 支持的 Maven 插件

    Java 语言广泛应用于企业级应用开发,其标准库提供了丰富的工具和接口,如 `java.beans.PropertyChangeSupport` 和 `java.beans.PropertyChangeListener`,这些在构建具有可观察属性变化的对象时非常有用。...

    详解Java编程的Observer观察者设计模式

    在Java中,`java.beans.PropertyChangeListener`接口代表了观察者,任何实现了这个接口的类都可以成为观察者。当主题的状态发生变化时,观察者会收到一个`PropertyChangeEvent`,并调用`propertyChange()`方法来处理...

    JavaBeans教程.pdf

    - **PropertyChangeSupport**:在JavaBeans中,`PropertyChangeSupport`类用于管理`PropertyChangeEvent`。通过添加`PropertyChangeListener`,对象可以监听其他对象的属性变化。当Bound属性值改变时,`...

    PropertyChangeSupportApi:处理注释和使用 PropertyChangeSupport 所需的额外代码

    在实际应用中,`PropertyChangeSupport` 常用于实现数据绑定,例如 Swing 组件或 JavaFX 中的界面元素与模型之间的数据同步。此外,它还可以帮助实现符合JavaBeans规范的可序列化组件,确保在反序列化时正确恢复属性...

    JavaBeans程序开发从入门到精通

    JavaBeans是Java编程中用于组件化开发的一种标准,它定义了如何创建可重用的软件组件。在JavaBeans中,属性是类中的成员变量,通过getter和setter方法来访问和修改这些变量的值。JavaBeans的属性有四种特殊类型:...

    Swing日期控件

    在Swing中,常见的日期模型有`java.util.Date`和`java.time.LocalDate`(Java 8引入)。开发者可以根据需求选择合适的日期模型,并通过相应的API进行操作。 4. **国际化与本地化**: Swing组件支持国际化和本地化...

    第四章 GEF框架.doc

    ```java // 模型类Element public abstract class Element implements Cloneable, Serializable { private PropertyChangeSupport listeners = new PropertyChangeSupport(this); public void ...

    JavaBean 属性

    JavaBean 是一种遵循特定编码规范的 Java 类,广泛应用于 Java 应用程序中,尤其是在服务器端应用中。JavaBean 的核心是它的属性,这些属性不仅体现了面向对象编程中的封装特性,还为外部组件访问内部状态提供了一种...

    GEF 入门操作

    模型在GEF中扮演着基础角色,它仅与控制器交互,不直接涉及视图。模型一般实现简单,可以看作是可持久化的实体。为了响应模型的变化,控制器会被注册为模型的事件监听器,当模型状态改变时,会触发事件通知控制器,...

    Counter100to0:重用组件Java Beans计数器100%到0%,默认值100%

    2. **属性**:Java Beans通过公开的get和set方法(也称为getter和setter)暴露其状态,这是通过JavaBeans API中的PropertyChangeSupport类来实现的。 3. **事件**:当组件的状态改变时,Java Beans可以触发事件,并...

Global site tag (gtag.js) - Google Analytics