当前位置: 技术问答>java相关
我想问一下java的事件驱动机制是如何实现的,如何实现自定义的事件驱动?不够再加100!
来源: 互联网 发布时间:2015-09-13
本文导语: 我们知道java这样的面向对象是由事件驱动机制来运行的!我想问一下java的事件驱动机制是如何实现的,如何实现自定义的事件驱动?不够再加100! | java的授权事件模型 在授权事件模型...
我们知道java这样的面向对象是由事件驱动机制来运行的!我想问一下java的事件驱动机制是如何实现的,如何实现自定义的事件驱动?不够再加100!
|
java的授权事件模型
在授权事件模型中,源产生一个事件,并将它传送到一个或多个接收器。接受器只是等待,直到它接收到一个事件。一旦它接收到以后,接收器处理该事件然后返回。
事件接收器在源中注册自己!
类似于vc:
如果你想实现自己的事件响应函数,你只要在注册监听器的同时调用自己的处理函数,相当于在vc的消息映射池,你只要把消息指向你的处理函数就可以了。如果你想实现自定义事件,你要实现一个事件Event,相当于vc的WM_USER+1,同时你还要实现事件的传递,像实现vc的自定义消息传递Notify()。
下面是一个例子:
在授权事件模型中,源产生一个事件,并将它传送到一个或多个接收器。接受器只是等待,直到它接收到一个事件。一旦它接收到以后,接收器处理该事件然后返回。
事件接收器在源中注册自己!
类似于vc:
如果你想实现自己的事件响应函数,你只要在注册监听器的同时调用自己的处理函数,相当于在vc的消息映射池,你只要把消息指向你的处理函数就可以了。如果你想实现自定义事件,你要实现一个事件Event,相当于vc的WM_USER+1,同时你还要实现事件的传递,像实现vc的自定义消息传递Notify()。
下面是一个例子:
|
其实java的事件机制十分简单,你完全可以实现自己的事件驱动;
主要涉及到如下几个类(可以参考键盘事件的有关类):
1.事件类XXXEvent,其中包含你所规定的事件的一些信息,如事件源,事件名称等等,如KeyEvent,中有eventSource,keyCode等等
2.事件监听接口,XXXEventListener,其中包含捕获到事件的类要作的事情,如KeyListener,其中包括:keyPress,keyReleased,等等
如:
public interface XXXListener{
public void doXXXEvent(xxxEvent e);
}
3.发出事件的类:可以是任意的类,在这个类中,可以发出该事件XXXEvent,比如可以在这个类中添加一个fireXXXEvent方法,在这个方法中去手工发出事件,如:
public void fireXXXEvent(){
java.util.Vector targets;
synchronized (this) {
targets = (java.util.Vector) xxxListeners.clone();
}
XXXEvent evt = new XXXEvent(.....);
for (int i = 0; i
主要涉及到如下几个类(可以参考键盘事件的有关类):
1.事件类XXXEvent,其中包含你所规定的事件的一些信息,如事件源,事件名称等等,如KeyEvent,中有eventSource,keyCode等等
2.事件监听接口,XXXEventListener,其中包含捕获到事件的类要作的事情,如KeyListener,其中包括:keyPress,keyReleased,等等
如:
public interface XXXListener{
public void doXXXEvent(xxxEvent e);
}
3.发出事件的类:可以是任意的类,在这个类中,可以发出该事件XXXEvent,比如可以在这个类中添加一个fireXXXEvent方法,在这个方法中去手工发出事件,如:
public void fireXXXEvent(){
java.util.Vector targets;
synchronized (this) {
targets = (java.util.Vector) xxxListeners.clone();
}
XXXEvent evt = new XXXEvent(.....);
for (int i = 0; i