java事件处理机制:JAVA的事件处理机制

        JAVA事件处理机制核心内容是:事件发生和事件处理相分离也就是说个组件发生了些变化则该组件只需要产生个事件而不用关心该事件如何被处理其它组件如果对该事件感兴趣则编写相应事件处理代码

        举个例子:点击个按钮改变JPanel背景色事件发生代码定是写在按钮类里面(由于这个事件已经被AWT定义好了因此不用我们操心后面会讲到自定义事件)而事件处理代码定是写在JPanel类里面(我们会在继承于JPanel个类中定义个ActionListener实现actionPerformed思路方法)最后把这个ActionListener添加到JButton中表示JPanel对JButton点击事件感兴趣

        下面来谈谈自定义事件这才是本文重点首先请想Event到底是什么?我认为Event就是变化比如鼠标移动了窗口最大化了甚至个类属性被改变了……但变化不是Event!那什么样变化才能算是个Event呢?其他组件感兴趣变化才是个Event比如上面点击按钮改变背景色JButton被点击后JPanel颜色发生了变化即JPanel对JButton点击很感兴趣因此该点击才算是个事件才应该用到JAVA事件处理机制:事件发生和处理相分离!如果某个类变化只有他自己感兴趣类都不感兴趣那么就没必要使用JAVA事件处理机制直接把事件处理代码写在该类中就可以了(JButton等类是系统定义我们很难去修改他源代码因此还是用事件处理机制比较好我这里主要强调自定义类)

        作为个自定义如果发生了某些变化该如何处理这些变化呢?是自己写代码处理还是利用JAVA事件处理机制把处理代码写到别类里面呢?还是我上面那句话要看看这个类变化其他类是否感兴趣如果其他类都不感兴趣那么毫无疑问自己解决就行了;如果只有有限几个类感兴趣那么自己解决或者使用JAVA事件机制都行;如果对此感兴趣其他类情况未知数量未知那么定要JAVA事件处理机制自己是搞不定举个不太恰当例子:比如刘德华手破了流血了(个只有自己感兴趣事件)那么自己包扎下就行了(自己处理);如果刘德华死了(他老婆和他感情很深决定殉情)那么有关这事件处理也可以由刘德华自己搞定(先杀掉老婆在自杀);如果刘德华死了世界上有无数多fans决定起殉情这种情况就不是由刘德华个人能搞定了(华仔不能拿着把菜刀寻遍全世界把所有愿意殉情fans都杀死再自杀吧工程太浩大了~)只能采用JAVA事件处理机制把刘德华死讯通知全世界愿意殉葬fans自己自杀(如何处理事件完全由自己决定不由华仔决定)

        那么自定义事件代码该如何写呢?首先自定义个MyEvent类再自定义个MyListener类该类中有个事件处理myPerformed在发生事件类里面定义个MyListener用于存放监听器还要定义个addMyListener思路方法方便别组件注册监听器最后在发生事件地方遍历MyListener个元素myPerformed(MyEvent e)思路方法即可!

        介绍说明:本贴附件和本贴内容无任何重复是以图形编程角度详细讲解事件处理机制内附大量源代码辅助进行介绍说明

Java事件处理详述(内含大量例子).rar
(2009-05-21 19:34:58, Size: 9.34 KB, Downloads: 0)

Tags:  java的异常处理机制 java事件处理 java事件机制 java事件处理机制

延伸阅读

最新评论

发表评论