import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
public class MyBean{
private String name = "redheart";
private String sex = "男";
private PropertyChangeSupport support = new PropertyChangeSupport(this);
public void setName(String newname){
String oldname = this.name;
this.name = newname;
support.firePropertyChange("name", oldname, newname);
}
public String getSex() {
return sex;
}
public void setSex(String newsex){
String oldsex = this.sex;
this.sex = newsex;
support.firePropertyChange("sex", oldsex, newsex);
}
public String getName(){
return name;
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
support.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
support.removePropertyChangeListener(listener);
}
}
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
public class UseMybean implements PropertyChangeListener
{
private static MyBean bean = new MyBean();
public static void main(String [] args)
{
UseMybean usebean = new UseMybean();
bean.addPropertyChangeListener(usebean);
bean.setName("bluesky");
bean.setSex("女");
System.out.println("打印我的名字:"+bean.getName());
System.out.println("打印我的姓别:"+bean.getSex());
}
public void propertyChange(PropertyChangeEvent e)
{
if (e.getSource() == bean)
{
//System.out.println("旧的名字:"+e.getPropertyName());
System.out.println("旧的"+e.getPropertyName()+":"+e.getOldValue().toString());
System.out.println("新的"+e.getPropertyName()+":"+e.getNewValue().toString());
}
}
}
分享到:
相关推荐
在Java编程中,`PropertyChangeSupport` 是一个用于实现属性更改通知机制的工具类,它在JavaBeans规范中被广泛使用。这个类帮助开发者轻松地为对象添加属性变更监听器,以便在对象的属性发生变化时通知其他感兴趣的...
3. **添加PropertyChangeSupport对象**:在JavaBean类中,添加一个`java.beans.PropertyChangeSupport`对象作为成员变量,用于管理属性更改事件。例如`private PropertyChangeSupport pcs = new ...
Java的`java.beans.PropertyChangeSupport`类就支持状态监听。 12. **模板方法模式**:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 ...
`java.beans.PropertyChangeSupport`类用于存储和恢复对象的属性状态。 21. 状态机模式(State Machine):通过定义对象的状态转换规则来简化对象的行为。例如,`java.nio.channels.Selector`在选择器的注册、取消...
标签中提到的JAVA虽然与本主题不符,但值得指出的是,Java也有类似的概念,即`java.beans.PropertyChangeSupport`类和`PropertyChangeEvent`,它们在Java Swing和JavaFX等UI框架中用于实现属性变化的通知。...
3. **符合JavaBeans Introspection**:通过实现`java.beans.PropertyChangeSupport`接口,支持属性变化的通知。 在JSP+JavaBean的留言本应用中,JavaBean可能包含用户留言的数据模型,如`Message`类,包含`id`、`...
在Applet中,可以通过`java.beans.PropertyChangeSupport`类来发布和监听属性变化,实现Applet间的通信。 3. **使用Java的Observer和Observable模式** 这是Java标准库提供的事件处理模型,一个对象(Observer)...
- **可视化Bean**:一些Java Beans设计为可视化组件,如JButton、JLabel等,可以在图形用户界面(GUI)工具中拖放使用。 - **属性编辑器**:IDEs如Eclipse和NetBeans提供可视化编辑器,允许开发者通过图形界面修改...
- **在GUI中**:JavaBeans可以作为可重用的组件在Java Swing或JavaFX等图形用户界面库中使用。 - **在EJB中**:在企业级Java应用中,JavaBeans(尤其是Session Beans和Entity Beans)用于业务逻辑处理和持久化数据...
在Java中,事件源需要实现`java.util.EventSource`接口(通常通过继承`java.awt.Component`或`java.beans.PropertyChangeSupport`)。 2. **事件**:事件是表示特定状态变化的对象,通常扩展自`java.util....
- **创建实例**:首先,需要在 JavaBean 中声明一个 `PropertyChangeSupport` 实例,通常将其初始化为当前 JavaBean 的引用。 ```java private PropertyChangeSupport changes = new PropertyChangeSupport(this...
在实际应用中,你可能还会用到`java.beans.PropertyChangeSupport`类,它提供了属性改变的通知机制,这对于监听和响应Bean属性变化的情况非常有用。当表单值发生变化时,可以触发事件通知其他组件。 此外,`...
这通过实现java.beans.PropertyChangeSupport和java.util.EventListener接口来实现。 JavaBeans的主要特性包括: 1. **属性**:属性是Bean内部的状态,可以通过getter和setter方法访问。属性的变化可以通过...
此外,`java.beans`包提供的`PropertyChangeSupport`类可帮助实现属性改变的监听功能。 Servlet是Java平台上的服务器端程序,主要处理HTTP请求。Servlet生命周期包括加载、实例化、初始化、服务、销毁五个阶段。...
JavaBeans是Java编程语言中的一种组件技术,主要用于创建可重用的软件组件。这些组件可以在图形用户...在实际项目中,JavaBeans常与其他Java技术,如Servlets、JSP、Spring框架等结合使用,构建复杂的Java企业级应用。
3. **符合 JavaBeans 规范**:JavaBean 应遵循 JavaBeans 标准,例如使用 `java.beans` 包中的 `PropertyChangeSupport` 类来支持属性改变事件。 4. **序列化**:JavaBean 往往需要实现 `Serializable` 接口,以...
在JSP页面中使用JavaBean,通常会使用`<jsp:useBean>`指令进行初始化。该指令允许开发者指定JavaBean的类名、作用域和ID,以便在JSP页面中引用和操作。因此,正确的答案是`A.jsp:useBeanid=myClassscope=application...
Java Beans是一种在Java编程语言中创建可重复使用的软件组件的标准。这些组件主要用于构建用户界面,尤其是在企业级应用程序中。在本案例中,我们讨论的是一个名为"Counter100to0"的Java Bean,它是一个从100%计数到...