TestListener类 这个类是我们自己写的监听服务
1 import java.beans.PropertyChangeListener;
2 import java.beans.PropertyChangeSupport;
3
4
5 public class TestListener{
6
7 PropertyChangeSupport listeners = new PropertyChangeSupport(this);
8
9 //添加监听器
10 public void addPropertyChangeListener(PropertyChangeListener l) {
11 listeners.addPropertyChangeListener(l);
12 }
13
14 //触发属性改变的事件
15 protected void firePropertyChange(String prop, Object old, Object newValue) {
16 listeners.firePropertyChange(prop, old, newValue);
17 }
18
19 //触发结构改变的事件
20 protected void fireStructureChange(String prop, Object child) {
21 listeners.firePropertyChange(prop, null, child);
22 }
23
24 //删除监听器
25 public void removePropertyChangeListener(PropertyChangeListener l) {
26 listeners.removePropertyChangeListener(l);
27 }
28 }
TestPropertyChangeListener类 这个是一个监听器类 是用来监听TestListener类的
1
import java.beans.PropertyChangeEvent;
2
import java.beans.PropertyChangeListener;
3
4
public class TestPropertyChangeListener implements PropertyChangeListener
{
5
6
public void propertyChange(PropertyChangeEvent evt)
{
7
System.out.println(evt.getNewValue());
8
System.out.println(evt.getOldValue());
9
System.out.println(evt.getPropagationId());
10
System.err.println(evt.getPropertyName()); //这个就是接受过来的标识
11
Object j = evt.getSource(); //经过转型可以得到 完整的Bean对象
12
System.out.println("JY:PropertyChangeListener");
13
14
15
}
16
17
}
Bean类 这个类很简单的 就是很简单的JAVABEAN
1
public class Bean extends TestListener
{
2
3
private String name;
4
private String pwd;
5
public String getName()
{
6
return name;
7
}
8
public void setName(String name)
{
9
String old = this.name;
10
this.name = name;
11
firePropertyChange("name",old,name);
12
//第一个参数 是标识号 我们可以通过这个来判别是哪里触发 了事件
13
14
}
15
public String getPwd()
{
16
return pwd;
17
}
18
public void setPwd(String pwd)
{
19
String old = this.pwd;
20
this.pwd = pwd;
21
firePropertyChange("pwd",old,pwd);
22
}
23
24
}
Test类 执行类
1
public class Test
{
2
3
public static void main(String[] args)
{
4
Bean n = new Bean();
5
//把我们做好的 监听器 增加给javabean对象
6
n.addPropertyChangeListener(new TestPropertyChangeListener());
7
//当SETNAME的时候 就会触发 监听器 中的方法
8
n.setName("a");
9
n.setPwd("sdf");
10
}
11
}
本文介绍了一个简单的JavaBean监听实现案例,通过自定义的TestListener类实现了属性变更的监听功能,并详细展示了如何通过TestPropertyChangeListener类来接收并处理这些变化。

被折叠的 条评论
为什么被折叠?



