javaBean事件监听

我使用JAVA开发项目 也刚刚只有半年多的时间吧 根本提不上什么经验 总是从网上找别人的代码和例子看 但自己却从未上传过什么东西给别人看 而且最近发现找到的精华都是别人的BLOG里写的内容 一时感觉不错 我也把自己的学习记录搞上去吧

 

首先这个例子 我做了4个类 分别是

 

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类的

 

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}

 

 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}


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}

我自己想了一下   其实JAVA所有的监听机智 好象都是这样子实现的 比如按钮那些

我开始特别不理解 按钮的那些事件是怎么回事   现在终于有点明白了 

这是我写的第一篇东东   虽然都是很浅的东西   但还是希望大家能够喜欢   并且对大家有点帮助

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值