最近没事在研究Java的事件传递,小有心得。下面给出一些代码,这里是在网上看到的一个小小实例,觉得很好,就将它贴出来了。相信初学者看了之后也应该基本明白Java中事件传递的原理。
定义事件监听器
package testPackage;
public interface Listenable {
public void enventChanged(MyEvent e);
}
public interface Listenable {
public void enventChanged(MyEvent e);
}
自定义事件
package testPackage;
public class MyEvent {
private int value;
public int getValue(){
return value;
}
public void setValue( int value){
this.value = value;
}
}
public class MyEvent {
private int value;
public int getValue(){
return value;
}
public void setValue( int value){
this.value = value;
}
}
测试类
package testPackage;
public class MyListener implements Listenable {
public void enventChanged(MyEvent e) {
// TODO Auto-generated method stub
System.out.println( "value changed to:" + e.getValue());
}
public static void main(String args[]){
MySource ms = new MySource();
MyListener ml = new MyListener();
ms.addListener( new Listenable(){
public void enventChanged(MyEvent e) {
// TODO Auto-generated method stub
System.out.println( "print 1");
}
});
ms.addListener(ml);
ms.setValue(10);
}
}
public class MyListener implements Listenable {
public void enventChanged(MyEvent e) {
// TODO Auto-generated method stub
System.out.println( "value changed to:" + e.getValue());
}
public static void main(String args[]){
MySource ms = new MySource();
MyListener ml = new MyListener();
ms.addListener( new Listenable(){
public void enventChanged(MyEvent e) {
// TODO Auto-generated method stub
System.out.println( "print 1");
}
});
ms.addListener(ml);
ms.setValue(10);
}
}
输出:
print 1
value changed to:10
value changed to:10
转载于:https://blog.51cto.com/xiaodpro/323115