当前位置: 技术问答>java相关
有关诊听器的结构问题。帮忙了,大哥大姐|!!
来源: 互联网 发布时间:2015-05-08
本文导语: 诊听器的结构为什么是那样的,有点让人无法理解和接受,各位人仁兄能帮着解释以下吗??谢谢了 | to letmeto (冰玉) : 事件监听机制的简单抽象就是:(当符合事件发生的条件时)事件源(s...
诊听器的结构为什么是那样的,有点让人无法理解和接受,各位人仁兄能帮着解释以下吗??谢谢了
|
to letmeto (冰玉) :
事件监听机制的简单抽象就是:(当符合事件发生的条件时)事件源(sender)产生一个事件(event),并将该事件(event)发送给事件接受者(receiver),然后接受者(receiver)根据事件内容采取相应动作(就是listener中实现的方法)。
先来看event对象
event扩展了java.awt.AwtEvent,(新建事件时,构造函数需要sender对象和一个唯一的事件序列号作为参数,当然也可以记录一些其他的信息),让receiver通过evt.getXXX的方式获得event中记录的信息.
再来看receiver对象(其实就是listener接口)
receiver对象是实现了listener接口的类,listener接口中的方法就是当事件发生时可能触发的方法。因此receiver必须实现他们,以在事件发生时做出相应的响应。
最后是sender对象
sender需要扩展component类,需要实现addXXXlistener,removeXXXListener等管理监听器的方法。当事件产生时,它会生成一个event对象,并将他们加入到系统的event队列。对于sender而言,重要的是在它的内部有一个存放listener接口的arraylist,而其中的存放的对象就是通过addXXXlistener加入的那些receiver对象(以接口形式)。当event对象满足某些条件后,sender对象便调用listener的相应方法,于是receiver对象就做出了响应。
基本上这就是事件机制的最基础的构架。因为没有图和代码,所以无法表述得很清楚。整个JAVA事件机制还有许多重要的细节,你可以多看看书和源码,自然会明白。
事件监听机制的简单抽象就是:(当符合事件发生的条件时)事件源(sender)产生一个事件(event),并将该事件(event)发送给事件接受者(receiver),然后接受者(receiver)根据事件内容采取相应动作(就是listener中实现的方法)。
先来看event对象
event扩展了java.awt.AwtEvent,(新建事件时,构造函数需要sender对象和一个唯一的事件序列号作为参数,当然也可以记录一些其他的信息),让receiver通过evt.getXXX的方式获得event中记录的信息.
再来看receiver对象(其实就是listener接口)
receiver对象是实现了listener接口的类,listener接口中的方法就是当事件发生时可能触发的方法。因此receiver必须实现他们,以在事件发生时做出相应的响应。
最后是sender对象
sender需要扩展component类,需要实现addXXXlistener,removeXXXListener等管理监听器的方法。当事件产生时,它会生成一个event对象,并将他们加入到系统的event队列。对于sender而言,重要的是在它的内部有一个存放listener接口的arraylist,而其中的存放的对象就是通过addXXXlistener加入的那些receiver对象(以接口形式)。当event对象满足某些条件后,sender对象便调用listener的相应方法,于是receiver对象就做出了响应。
基本上这就是事件机制的最基础的构架。因为没有图和代码,所以无法表述得很清楚。整个JAVA事件机制还有许多重要的细节,你可以多看看书和源码,自然会明白。
|
我还以为是医生的诊听器结构呢。
java的事件机制很好啊。等你以后就会知道了。
所有监听器接口都必须从EventListener接口继承。
所有事件对象类都必须从EventObject继承。
一种监听器对应他相应的事件。
比如让按钮监听鼠标事件。
Button b;
public class ButtonListener implements MouseListener
{
//实现接口定义的方法。
//比如让鼠标单击时打印他的位置。
public void MouseClicked(MouseEvent e)
{
System.out.pritn(e.getX(),e.getY())
}
}
b.addMousListenrer(new ButtonListener());
使用系统定义的事件监听就是这么简单。
如果你要实现自己的事件监听还要作另外是工作。
java的事件机制很好啊。等你以后就会知道了。
所有监听器接口都必须从EventListener接口继承。
所有事件对象类都必须从EventObject继承。
一种监听器对应他相应的事件。
比如让按钮监听鼠标事件。
Button b;
public class ButtonListener implements MouseListener
{
//实现接口定义的方法。
//比如让鼠标单击时打印他的位置。
public void MouseClicked(MouseEvent e)
{
System.out.pritn(e.getX(),e.getY())
}
}
b.addMousListenrer(new ButtonListener());
使用系统定义的事件监听就是这么简单。
如果你要实现自己的事件监听还要作另外是工作。
|
1.1以后的事件监听机制很好理解的,
1.1以前的事件监听机制哪才叫让人无法理解!
1.1以前的事件监听机制哪才叫让人无法理解!