「java事件处理的原理」java事件处理方法的概念
本篇文章给大家谈谈java事件处理的原理,以及java事件处理方法的概念对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java中的事件处理机制是怎样的
JAVA中当事件发生时,他不会进行广播,而是仅仅向关心此事件的对象发送消息。那么他怎么知道谁“关心”此事件呢。
这就要求关心此事件的对象,先行向事件的发出方进行注册,表示我关心此事件,当事件发生时请通知我。
【简单来说】:就是事件的“处理方”向事件的“发出方”先行注册,当事件发生时,事件的“发生方”负责通知事件的“处理方”。
譬如我编写一个窗口,用到了JFrame,我想实现一个功能,当按下Q键时,窗口关闭。
浅析Java与C#的事件处理机制(二)
\在程序中可见事件源Model类显式地调用了接口中的modelChanged方法 实际是把事件状态对象e作为参数 传递给了监听者类中的modelChanged方法
适配类
适配类是Java事件模型中极其重要的一部分 在一些应用场合 事件从源到监听者之间的传递要通过适配类来 转发 例如 当事件源发出一个事件 而有几个事件监听者对象都可接收该事件 但只有指定对象做出反应时 就要在事件源与事件监听者之间插入一个事件适配器类 由适配器类来指定事件应该是由哪些监听者来响应 适配类成为了事件监听者 事件源实际是把适配类作为监听者注册入监听者队列中 而真正的事件响应者并未在监听者队列中 事件响应者应做的动作由适配类决定 目前绝大多数的开发工具在生成代码时 事件处理都是通过适配类来进行的
C#事件处理
在 NET应用程序开发中 不管是WEB Forms(ASP NET)还是Windows Forms 都涉及到大量对象的事件响应及处理 比如客户在线提交一份订单 或是在Windows窗口上移动鼠标等都将有事件发生 那么在C#中 是怎样声明事件并为事件添加响应方法的呢?
在C#中 事件(Events)成员就是用来声明一个类事件的 在类中声明一个事件成员一般采用如下的语法形式
public event 代表名 事件名
如在Control类中声明了一个Click事件成员 其语法如下
public event EventHandler Click;
在C#中 增加了一个新的数据类型delegate来解决事件处理问题 代表数据类型非常类似于C语言中的指针 其与指针不同的是 其是代码是安全的 可管理的 由于C#本身的简易性 对于没有使用过C及指针的程序来说 理解delegate也是非常容易的
在C#中 通过使用delegate 你可以通过 += 操作符非常容易地为 Net对象中的一个事件添加一个甚至多个响应方法 还可以通过非常简单的 = 操作符取消这些响应方法 如下面为temp按钮添加Click事件的语句
temp Click+=new System EventHandler(this Test);//为test添加事件处理方法
在上面声明事件的语句中 Eventhandler是一个delegate(代表)类型 其在 Net类库中如下声明的
public delegate void EventHandler(object sender EventArgs e);
这样 所有形如:void 函娄名(object 参数名 EventArgs 参数名);的函数都可以作为Control类的Click事件响应方法了 如下面所定义的一个事件响应方法
private void button _Click(object sender System EventArgs e)
由于是通过delegate来处理事件 因此 可能通过累加使一个事件具有多个响应方法 与此同时 还可以使一个方法作为多个事件的响应方法(注意 在C#语言类中的event成员后面只能出现 += 与 = 两个表示添加与取消事件响应函数的操作符) 不管是ASP Net还是一般的Windows Forms 编程 在C#中 基本上我们遇到的事件响应方法都是说明成如下的形式
private void button _Click(object sender System EventArgs e)
那么 一个事件响应方法的存取权限 返回值类型 参数及类型甚至方法名称等是否都必须固定不变呢?答案是 不是!
一般情况下 事件的响应方法中都有两个参数 其中一个代表引发事件的对象即sender 由于引发事件的对象不可预知的 因此我们把其声明成为object类型 所有的对象都适用 第二个参数代表引发事件的具体信息 各种类型的事件中可能不同 这要根据类中事件成员的说明决定
我们知道 事件是通过delegate来处理的 假设将要表示事件说明成如下形式
delegate int MyEventHandler(object sender ToolBarButtonClickEventArgs e);
则当涉及上面的事件响应函数声明时 就须要声明成如下的形式
private int MyTest(object sender ToolBarButtonClickEventArgs e) {}
在给对象添加事件响应方法时就可以用如下的代码实现
Control Event+=new MyEventHandler(MyTest);
lishixinzhi/Article/program/net/201311/14835
1.java的事件处理机制是怎样的
java事件处理机制你必须得明确以下几个概念:
核心:java采用的是事件源——事件监听器模型
1:事件(event):是指一个状态的改变,或者一个活动的发生。例如,简单常见的是单击一个按钮,或者输入一个按键都是一个事件。
2:事件源(event source):能够产生事件的对象称为事件源,如文本框,按钮,下拉列表等。
3:事件监听器(event listener):需要一个对象对事件源进行监听,以便对发生的事件做出处理,该对象就是事件监听器。事件源通过调用相应的方法将某个对象作为自己的监听器。无论应用程序还是小程序都采用这一机制。
例,对于按钮,注册监听器的方法是 addActionListener(监视器);:
4: 事件源获得监听器之后,相应的操作就会导致事件的发生,并通知监听器,监听器就会做出相应的处理。
5:处理事件的接口:监听器负责处理事件源发生的事件。为了处理事件源发生的事件,监听器会自动调用一个方法来处理事件,该方法定义在相应事件的接口中。
java事件处理的原理的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java事件处理方法的概念、java事件处理的原理的信息别忘了在本站进行查找喔。