当前位置:首页 » 编程语言 » java事件教程

java事件教程

发布时间: 2022-12-25 07:25:00

‘壹’ java中事件,事件源和事件监听器概念,使用事件监听器惊醒事件处理的过程

  1. 事件:当用户在界面上执行一个操作,例如按下键盘、拖动或者单击鼠标时,都将产生一个事件。Java中事件是用来描述不同类型用户操作的对象,Java中有很多不同类型的事件。例如:单击,双击,右击,拖动,键盘的按下、释放,文本域内容改变等。

  2. 事件源:产生事件的组件就是一个事件源。例如,当在一个Button上单击鼠标是,将产生一个ActionEvent类型的事件,而这个Button就是事件源

  3. 事件监听器:就是调用事件处理方法的对象。当界面操作事件产生并被发送到产生事件的组件时,该组件将把事件发送给能接受和处理该事件的监听器。

‘贰’ java 自定义事件的触发及监听

JAVA事件响应机制

1,先自定义一个事件

public class MyEvent extends java.util.EventObject{
public MyEvent(Object source)
{
super(source);
}
}

2,再自定义一个监听器

public class MyListener implements java.util.EventListener{
//这里是当事件发生后的响应过程
public void EventActivated(MyEvent me)
{
System.out.println("事件已经被触发");
}
}

3,以下这个类为触发事件的事件源

public class MyObject {
private Vector vectorListeners=new Vector();

public synchronized void addMyListener(MyListener ml)
{
vectorListeners.addElement(ml);
}

public synchronized void removeMyListener(MyListener ml)
{
vectorListeners.removeElement(ml);
}

protected void activateMyEvent()
{
Vector tempVector=null;

MyEvent e=new MyEvent(this);

synchronized(this)
{
tempVector=(Vector)vectorListeners.clone();

for(int i=0;i<tempVector.size();i++)
{
MyListener ml=(MyListener)tempVector.elementAt(i);
ml.EventActivated(e);
}
}

}

//定义一个公用方法用于触发事件
public void test()
{
activateMyEvent();
}
}

4,测试类

public class Test {

public static void main(String[] args)
{
MyObject mo=new MyObject();

//注册该事件
mo.addMyListener(new MyListener());

//触发该事件
mo.test();
}
}

‘叁’ java的事件处理是什么

打个比方:如果用户用鼠标单击了按钮对象button,则该按钮button就是事件源,而java运行时系统会生成ActionEvent类的对象actionE,该对象中描述了该单击事件发生时的一些信息,然后,事件处理者对象将接收由java运行时系统传递过来的事件对象actionE并进行相应的处理。
由于同一个事件源上可能发生多种事件,因此java采取了授权处理机制,事件源可以把在其自身所有可能发生的事件分别授权给不同的事件处理者来处理。比如在Canvas对象上既可能发生鼠标事件,也可能发生键盘事件,该Canvas对象就可以授权给事件处理者一来处理鼠标事件,同时授权给事件处理者二来处理键盘事件。有时也将事件处理者称为监听器,主要原因也在于监听器时刻监听着事件源上所有发生的事件类型,一旦该事件类型与自己所负责处理的事件类型一致,就马上进行处理。授权模型把事件的处理委托给外部的处理实体进行处理,实现了将事件源和监听器分开的机制。事件处理者(监听器)通常是一个类,该类如果要能够处理某种类型的事件,就必须实现与该事件类型相对的接口。例如例5.9中类ButtonHandler之所以能够处理ActionEvent事件,原因在于它实现了与ActionEvent事件对应的接口ActionListener。每个事件类都有一个与之相对应的接口。将事件源对象和事件处理器(事件监听器)分开。
使用授权处理模型进行事件处理的一般方法归纳如下:
1.对于某种类型的事件XXXEvent, 要想接收并处理这类事件,必须定义相应的事件监听器类,该类需要实现与该事件相对应的接口XXXListener;
2.事件源实例化以后,必须进行授权,注册该类事件的监听器,使用addXXXListener(XXXListener ) 方法来注册监听器。
这是我的一点个人见解,希望对你有帮助,加油。

热点内容
sqlserver跨库查询 发布:2024-05-16 21:36:56 浏览:163
sql多表连接语句 发布:2024-05-16 21:21:53 浏览:300
sqlscope 发布:2024-05-16 21:17:37 浏览:965
存储器通常有 发布:2024-05-16 21:17:35 浏览:378
云数据库概念 发布:2024-05-16 21:17:32 浏览:818
铺地板编程 发布:2024-05-16 21:07:36 浏览:458
苹果手机缓存删除 发布:2024-05-16 21:04:35 浏览:507
scratch编程电子书 发布:2024-05-16 21:02:54 浏览:227
wps加密文件忘记密码 发布:2024-05-16 21:01:37 浏览:931
不义联盟安卓版在哪里下载 发布:2024-05-16 21:00:42 浏览:726