Posted on 2007-06-01 16:26
第五正 阅读(617)
评论(1) 编辑 收藏 所属分类:
JAVA
javabean事件监听例子
我使用JAVA开发项目 也刚刚只有半年多的时间吧 根本提不上什么经验 总是从网上找别人的代码和例子看 但自己却从未上传过什么东西给别人看 而且最近发现找到的精华都是别人的BLOG里写的内容 一时感觉不错 我也把自己的学习记录搞上去吧
首先这个例子 我做了4个类 分别是
1 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 }
29
30
2 TestPropertyChangeListener类 这个是一个监听器类 是用来监听TestListener类的
1import java.beans.PropertyChangeEvent;
2import java.beans.PropertyChangeListener;
3
4public 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}
18
19
3 Bean类 这个类很简单的 就是很简单的JAVABEAN
1public 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}
25
26
4 Test类 执行类
1public 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}
12
13
我自己想了一下 其实JAVA所有的监听机智 好象都是这样子实现的 比如按钮那些
我开始特别不理解 按钮的那些事件是怎么回事 现在终于有点明白了
这是我写的第一篇东东 虽然都是很浅的东西 但还是希望大家能够喜欢 并且对大家有点帮助