晕晕乎听了一下午课,再加上以前对java事件监听的学习,理解不甚透彻,简单说说我的看法,不到之处还请多多指点:
在程序编写设计中,想通过点击按钮或移动鼠标来实现某功能,通常这种情况或者类似的情况下,我们可以使用事件/监听器模式。
1.事件有很多种,而且事件发生的时序是不确定的。可以简单的定义一个事件的接口,如下例:
interface Event{
static int event1 = 0;
static int event2 = 1;
static int event3 = 2;
...
int getEventType();
}
2.一个监听器的接口的一种可能形式:
interface listener{
void handleEvent(Event event);
}
3.实现监听器接口的类:
class ListenerImpl implements Listener{
some other methods of this implementation;
...
void handleEvent(Event event){
switch(event.getEventType()){
case Event.event1:
doSomething();
break;
case Event.event2:
doSomethingElse();
break;
default:
break;
}
}
4.事件的实现类
class EventImpl implements Event{
private int type;
public EnentImpl(int type){
this.type = type;
}
}
5.处理实现事件监听类
class ProcessThread{
private Listener listener;
public void setListener(Listener listener){
this.listener = listener;
}
public void execute(){
if(this.listener != null){
Event event = new EventImpl(type);//触发了某事件
listener.handleEvent(event);
}
}
}
6.启动主函数,实现事件监听功能
以上就是我对事件监听机制的一点点理解,不到之处,还望指点。
在程序编写设计中,想通过点击按钮或移动鼠标来实现某功能,通常这种情况或者类似的情况下,我们可以使用事件/监听器模式。
1.事件有很多种,而且事件发生的时序是不确定的。可以简单的定义一个事件的接口,如下例:
interface Event{
static int event1 = 0;
static int event2 = 1;
static int event3 = 2;
...
int getEventType();
}
2.一个监听器的接口的一种可能形式:
interface listener{
void handleEvent(Event event);
}
3.实现监听器接口的类:
class ListenerImpl implements Listener{
some other methods of this implementation;
...
void handleEvent(Event event){
switch(event.getEventType()){
case Event.event1:
doSomething();
break;
case Event.event2:
doSomethingElse();
break;
default:
break;
}
}
4.事件的实现类
class EventImpl implements Event{
private int type;
public EnentImpl(int type){
this.type = type;
}
}
5.处理实现事件监听类
class ProcessThread{
private Listener listener;
public void setListener(Listener listener){
this.listener = listener;
}
public void execute(){
if(this.listener != null){
Event event = new EventImpl(type);//触发了某事件
listener.handleEvent(event);
}
}
}
6.启动主函数,实现事件监听功能
以上就是我对事件监听机制的一点点理解,不到之处,还望指点。