JAVA语言编写事件处理程序的两种主要方案

JAVA语言编写事件处理程序的两种主要方案,第1张

java语言编写事件处理程序主要有两种方案:一个是程序重设方法handleEvent(Event),采用这个方案的程序工作量稍大。另一个是程序实现一些系统设定的接口。java按事件类型提供多种接口,作为监视器对象的类需要实现相应的接口,即实现响应事件的方法。当事件发生时,瞎核系统内设的handleEvent(Event evt)方法就自动调用监视器的类实现的响应事件的方法。

java.awt.event包中用来检测并对事件做出反应的模型包括以下三个组成元素:

(1)源对象:事件发生在这个组件上,它与一组侦听该事件的对象保持着联系。

(2)监视器对象:是一个实现伏亮预定义的接口缺神宽的类的一个对象,该对象的类要提供对发生的事件作处理的方法。

(3)事件对象:包含描述当事件发生时从源传递给监视器的特定事件的信息。

using System

namespace EventExample

{

    public delegate void MyEventHandler(Object sender, EventArgs e)

    public class EventExample

    {

        public event MyEventHandler FindSeven

        private Random _NumberCreator = new Random()

        public void MessageLoop()

        {

            while(true)

            {

                if(_NumberCreator.Next(8) == 7)

                {

                    if(FindSeven != null)

                    {

                        EventArgs e = new EventArgs()

                        FindSeven(this, e)

                    }

                    break

                }

            }

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

            EventExample myEventControl = new EventExample()

            myEventControl.FindSeven += new MyEventHandler(MyFindSeven)

            烂烂没myEventControl.MessageLoop()

        }

        public static void MyFindSeven(Object sender, EventArgs e)

        {

            Console.WriteLine("Find Seven")

        }

    }

}

上面是一段简单的自定义事件处理代码

首先解释一下委托。委托相当于历此c语言中的函数指针,用来引用参数相同但处理不同的函数,可以看作是 签名相同的函数 的共同别名。在事件处理中,它用来回调自定义的事件处理函数。上面的MyEventHandler委托可以用来代替所有参数为:第一个是Object类型、第二个为EventArgs类型,返回值为void的函数,例如Program类中的MyFindSeven函数。委托是一种类型结构,与类、结构体、枚举一样,因此它可以直接在命名空间中声明,不必放在某个类中。delegate 关键字相当于class关键字,MyEventHandler相当于EventExample。实例化委托时,可以以函数作为参数。例如MyEventHandler handler = new MyEventHandler(MyFindSeven)实例化了MyEventHandler委托。此后handler就可以代替MyFindSeven函数。调用函数时,handler(this,e)与MyFindSeven(this,e)等同。

事件的设计主要包括:定义事件、编写事件处理代码、绑定处理函数等步骤。

定义事件时,事件必须以成员的身份出现。定义事件使用event关键字,后面跟处理事件的委托类型(MyEventHandler),使用委托是语法规定,可以查看C#语法规范Ecma334中关于事件声明的描述。为了使事件的触发处理尽量简单,我将事件的触发和接收处理都放在了EventExample类中。类成员FindSeven表明EventExample类可以接收事件,成员函数MessageLoop用于触发FindSeven事件,当随机数为7时,触发事件。判断FindSeven是否为空是为了检查事件是否已经绑定自定义处理代码。

主函数中,首先实例化事件引发和接收事件的类EventExample,接着为FindSeven绑定处理函数,最后调用MessageLoop触发事件。

在事件中使用委托的好处在于,当事件触发时,底层代码可以直接调用委托,不用关心事件处理的自定义函数。EventExample相当于button一类的控件,事件触发时,.NET底层代码直接调饥纳用Click一类的委托,只要编程人员通过…Click += new EventHandler(事件处理函数)这种方式将自定义处理函数绑定到事件上,就可以保证编写的代码会参与到事件的处理中。

关于C#中事件的详细描述,可以查看《C#入门经典》、《C#高级编程》、《CLR via C#》这些书籍。

一、打架斗殴事件处理程序

本应急处理程序的要点是:迅速制止斗殴,防止事态扩大升级,避免出现人员毁告薯伤亡。

1、值班人员在获得学生打架斗殴事件信息后,在第一时间立即赶到现场,制止斗殴,防止事态扩大升级,并拨打保卫处值班电话,

2、等事态稳定后,通过当事人或友轿现场目击都了解事件的基本情况,如果事态严重应立即通知二级学院和学生处相关领导和老师到现场参加处理。

①在同班同学之间发生打架斗殴的,通知学生所在班辅导员;

②在同二级学院学生之间发生打架斗殴的,通知学生所在二级学院学办主任分管学生工作副书记二级学院党总支书记二级学院院长;

③在不同二级学院学生之间发生打架斗殴的,分别通知学生所在二级学院学办主任分管学生工作副书记二级学院党总支书记二级学院院长;

④同时,作为现场处置人需要按:宿舍管理员学生宿舍值班老师宿舍管理中心主任学生处分管学生宿舍领导学生处处长,根据事态、事件情况逐级上报。

3、值班人员在处理完事件后,将事件经过录入值班日志。

二、火灾事件应急处理程序

本应急处理程序的要点是:安全撤离人员,尽快扑灭火灾,减少事件损失。

1、值班人员在获得火灾信息的第一时间应立即赶往现场。

2、到达初起火点现场的值班人员应组织学生或者宿舍管理人员使用消防栓、灭火器材等进行灭火自救,如事态无法控制立即拨打119报警。

3、到达现场后如果事态严重无法控制应立即组织学生疏散。

4、在有效控制好现场的同时,作为现场处置人需要按:

物管公司负责人 保卫处值班人员

宿舍管理员———学生宿舍值班老师————宿舍管理中心主任————学生处分管学生宿舍领导————学生处处长,根据事态、事件情况逐级上报。

5、在处理完事件后,将事件录入值班日志。

三、突发疾病或受伤事件处理程序

本应急处理程序的要点是:迅速控制局面,维持秩序,救治伤员。

1、宿舍管理员应第一时间向值班老师报告,并视学生情况,组织人员轻者送校医院纤者处理,重者立即拨打120求援。值班老师根据事态、事件情况逐级上报,维护现场秩序,避免拥挤和混乱,为救援人员提供通道。

保卫处值班人员 学生所在二级学院班主任 二级学院分管领导

学生宿舍值班老师 ———— 宿舍管理中心主任————学生处分管学生宿舍领导————学生处处长

2、若学生自杀、自残事件,应忙组织人员实施抢救,根据情况拨打120,维护现场秩序,避免拥挤和混乱,为救援人员提供通道,保持现场原状,保护现场证据。

3、在处理完事件后,将事件录入值班日志。

四、醉酒事件处理程序

本应急处理程序的要点是:不发生正面冲突,及时救治醉酒学生。

1、值班老师在掌握学生基本情况后,根据醉酒学生状况,组织本寝室或者本班同学轻者送校医院处理,重者立即拨打120求援。

2、通知醉酒学生所在班辅导员,根据学生情况,要求其及时到达医院,协助医院救治。如果联系不上辅导员,应向学生所在二级学院学办主任、分管领导、总支书记逐级联系,通报此情况。

3、根据学生情况,逐级向宿管中心主任、学生处分管领导、学生处长上报情况。

4、在处理完事件后,处理后将事件录入值班日志。

五、盗窃事件处理程序


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12482518.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存