import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
public class Test01
{
private String name;
/*
* 在事件源的地方顶一个一个PropertyChangeSupport对象,间接地由它负责
* 添加监听、激发事件
*/
private PropertyChangeSupport listernts=new PropertyChangeSupport(this);
/**
* 在事件源上添加监听,实际上是在PropertyChangeSupport对象上添加监听
* @param l
*/
public void addListner(PropertyChangeListener l)
{
listernts.addPropertyChangeListener(l);
}
/**
* 同上
* @param l
*/
public void removeListner(PropertyChangeListener l)
{
listernts.removePropertyChangeListener(l);
}
public String getName()
{
return name;
}
/**
* 事件源发生变化时,也是通过PropertyChangeSupport对象把事件发送到监听者上的
* @param name
*/
public void setName(String name)
{
this.name = name;
listernts.firePropertyChange(null,null,getName());
}
}
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
public class Test03 implements PropertyChangeListener
{
@Override
public void propertyChange(PropertyChangeEvent evt)
{
System.out.println("哈哈,我看见了");
}
public static void main(String args[])
{
Test01 t01=new Test01();
Test03 t02=new Test03();
//在事件源上添加监听,发生变化时就会调用propertyChange方法
t01.addListner(t02);
t01.setName("cxm");
}
}
分享到:
相关推荐
在Java编程中,`PropertyChangeSupport` 是一个用于实现属性更改通知机制的工具类,它在JavaBeans规范中被广泛使用。这个类帮助开发者轻松地为对象添加属性变更监听器,以便在对象的属性发生变化时通知其他感兴趣的...
我们使用 PropertyChangeSupport 类来管理该属性的变化,然后在 setter 方法中使用 firePropertyChange 方法来通知监听器。 在客户端代码中,我们创建了一个 TestBean 实例,然后添加了两个监听器 ...
在"PropertyChangeSupportApi-master"这个项目中,我们可以预期看到一个示例实现,展示如何在自定义类中使用 `PropertyChangeSupport` 来处理属性变化事件,以及如何添加和管理相关的注释。通过分析这个项目的源代码...
闲着没事,突然想起Java的观察者模式中有一个PropertyChangeSupport与PropertyChangeListener,于是就想看看用js能不能也实现一个,毕竟有时候js写的东西也需要一个观察者模式,于是就写了点东西,应该能派上用场。
下面是一个简单的示例,展示如何使用 `PropertyChangeSupport` 来管理关联属性的变化。 ```java public class MyBoundBean implements Serializable { private String ourString = "Hello"; private ...
通过理解并正确使用"PropertyChangeSupport",开发者可以在Java应用程序中实现更加灵活和健壮的组件交互,使得系统更易于扩展和维护。设计模式,如观察者模式,是软件工程中不可或缺的一部分,它们为解决复杂问题...
6. **触发事件**:在setter方法中,使用`firePropertyChange`方法触发`PropertyChangeEvent`,传递旧值和新值以及属性名称。 7. **处理事件**:在其他组件或类中,可以通过实现`PropertyChangeListener`接口并重写`...
private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this); public Person() {} public void addPropertyChangeListener(String propertyName, PropertyChangeListener ...
首先,声明并实例化一个PropertyChangeSupport对象,然后使用它的`firePropertyChange()`方法来触发属性改变事件。开发工具或手动编程时,可以通过`addPropertyChangeListener()`和`removePropertyChangeListener()`...
- **PropertyChangeSupport**:在JavaBeans中,`PropertyChangeSupport`类用于管理`PropertyChangeEvent`。通过添加`PropertyChangeListener`,对象可以监听其他对象的属性变化。当Bound属性值改变时,`...
了解了基本概念后,我们可以深入学习JavaBeans的高级特性,比如属性编辑器、定制事件、属性改变通知(`PropertyChangeSupport`和`VetoableChangeSupport`)、国际化支持(`ResourceBundle`)以及JavaBeans的容器支持...
此外,还可能涉及JavaBean的事件处理机制,例如ActionListener,以及如何使用PropertyChangeSupport类来实现属性变化监听。 "学员总结复习本门课程模板V1.0.ppt"则可能是一个详细的复习指南,涵盖了JavaBean的主要...
这通过实现`PropertyChangeSupport`类和使用`firePropertyChange`方法来实现。其他组件可以通过注册为`PropertyChangeListener`来监听特定属性的变化。 7. **国际化**:为了支持多语言环境,JavaBean可以包含资源包...
4. **数据绑定**:在Swing中,可以使用PropertyChangeSupport类进行属性变化的通知,使得视图能够实时响应模型数据的变化,实现双向数据绑定。 5. **数据库连接与操作**:系统可能使用JDBC(Java Database ...
此外,JavaBeans还可以通过`PropertyChangeSupport`类支持属性变更事件。当某个属性值改变时,可以通知监听器进行相应的处理。以下是一个简单的示例: ```java public class PersonBean extends Observable { ...
此外,`java.beans`包提供的`PropertyChangeSupport`类可帮助实现属性改变的监听功能。 Servlet是Java平台上的服务器端程序,主要处理HTTP请求。Servlet生命周期包括加载、实例化、初始化、服务、销毁五个阶段。...
private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this); public String getText() { return text; } public void setText(String newText) { String oldValue = text; ...
- **属性通知**:可选的`PropertyChangeSupport`机制,用于监听属性变化。 **3. JSP与JavaBean的结合** 在网上书店系统中,JavaBean通常作为模型(Model)层,负责数据处理和业务逻辑,而JSP作为视图(View)层,...
private PropertyChangeSupport listeners = new PropertyChangeSupport(this); public void addPropertyChangeListener(PropertyChangeListener l) { listeners.addPropertyChangeListener(l); } // 省略...
private PropertyChangeSupport changes = new PropertyChangeSupport(this); public void setOurString(String newString) { String oldString = ourString; ourString = newString; changes....