java中消息的整个流动过程是怎样的(从操作系统获得消息开始到事件监听器)?
比如一个JApplet里面直接add有一个Button,一个鼠标事件是怎么转化为ActionEvent直到Button处理掉这个消息如果那个轻量级组件JButton呢.不懂啊.......搞到头都大了...
比如一个JApplet里面直接add有一个Button,一个鼠标事件是怎么转化为ActionEvent直到Button处理掉这个消息如果那个轻量级组件JButton呢.不懂啊.......搞到头都大了...
//我要执行的对象
public class N {
ArrayList list=new ArrayList();//这里可以用来存放监听器
public void up(){
fire();//当调用up时,就触发监听器
}
public void register(Listener l){//注册一个监听器,可以监听该对象
list.add(l);
}
private void fire(){
for(int i=0;i<list.size();i++){
Listener l=list.get(i);
l.executer();
}
}
}
//监听器
public class Listener{
public void executer(){
System.out.println("执行了");
}
}
public class Test{
public static void main(String []args){
N n=new N();//比如你的button
Listener l=new Listener();//比如你为button写的监听器
n.register(l);//注册这个监听器
n.up();//执行up方法时,比如你点击了按钮,就触发了监听器
}
}已经很明白了,其实上面就是一个简单的监听器实现,原理一样。只不过很多时候你所继承的接口里面已经就帮你实现了fire等操作,所以对你来说这些都是透明的,感觉你点击按钮时,发了一个通知给监听器一样
既然作为java开发,面向对象思想,你只要能够实现...没必要知道内部如何运行....
既然作为java开发,面向对象思想,你只要能够实现...没必要知道内部如何运行....
-----------------------------------------------------------------------------
这种思想完全是一种祸害,知其然不知其所以然,所以很多人都只能停留在初级阶段,跟着别人后面跑