`

java 事件机制探讨

阅读更多

周末有人问道我java中事件机制是怎么实现的,天天只知道new一个事件适配器,今天结合网上的文章一起看看java中如何实现事件的监听。其实就是自定义事件。

  其中有三个主要相关的类

    1、EventObject
所有事件状态对象都将从其派生的根类。
        所有 Event 在构造时都引用了对象 "source",在逻辑上认为该对象是最初发生有关 Event 的对象。
    2、EventListener  接口
        public interface EventListener

所有事件侦听器接口必须扩展的标记接口。


    3、source    具体的接受事件的实体,比如说,你点击一个button,那么button就是event source,这样你必须使button对某些事件进行相应,你就需要注册特定的listener,比如说MouseEvent之中的 MouseClicked方法,这是他就必须有了add方法

 

 

 

 

package java1.base1.event1;

import java.util.EventListener;
import java.util.EventObject;

public class DemoEvent extends EventObject {
    public DemoEvent(Object source) {
        super(source);
    }
}
 

 

package java1.base1.event1;

import java.util.EventListener;

/**
 * @Title: Demolistener.java
 * @Description: <br>
 *               <br>
 * @Company: ChinaSoft International
 * @Created on 2011-1-10 下午04:30:19
 * @author chenhua
 * @version $Revision: 1.0 $
 * @since 1.0
 */
public interface Demolistener extends EventListener {
    public void DemoEvent(DemoEvent de);
}
 
package java1.base1.event1;

import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;

import com.sun.org.apache.bcel.internal.generic.NEW;

/**
 * @Title: DemoSource.java
 * @Description: <br>
 *               <br>
 * @Company: ChinaSoft International
 * @Created on 2011-1-10 下午04:34:16
 * @author chenhua
 * @version $Revision: 1.0 $
 * @since 1.0
 */
public class DemoSource {
    private List list=new ArrayList();
    Demolistener dl;
    public void addDemoListener(Demolistener dl){
        list.add(dl);
    }
    public void notifyDemoEvent(){
         for(int i=0;i<list.size();i++){
             dl=(Demolistener)list.get(i);
             dl.DemoEvent(new DemoEvent(dl));
         }
    }
    
}
 
package java1.base1.event1;

/**
 * @Title: TestDemoEvent.java
 * @Description: <br>
 *               <br>
 * @Company: ChinaSoft International
 * @Created on 2011-1-10 下午04:51:41
 * @author chenhua
 * @version $Revision: 1.0 $
 * @since 1.0
 */
public class TestDemoEvent {
    DemoSource Ds;
    public TestDemoEvent(){
        try {
            Ds=new DemoSource();
            Ds.addDemoListener(new Demolistener(){
                public void DemoEvent(DemoEvent de) {
                    System.out.println("spy-sky 455927885 ");
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
        Ds.notifyDemoEvent();
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        new TestDemoEvent();
    }

}

  将EventObject子类作为参数,定义事件对应的listener接口。实现source。

 

 

分享到:
评论

相关推荐

    JAVA事件处理机制

    Java事件处理机制是Java编程中一个关键的概念,它主要用于用户界面(UI)应用程序,使得程序能够响应用户的操作,如点击按钮、选择菜单项等。在Java中,事件处理主要涉及三个核心组件:事件源(Event Source)、事件...

    Java事件处理机制教学方法探讨.pdf

    在Java编程语言中,事件处理机制是构建图形用户界面(GUI)交互功能的核心技术。理解这一机制对于编程人员而言至关重要,因为它涉及到程序如何响应用户的操作。为了让初学者更好理解Java事件处理机制及其编程技术,黄...

    java事件处理机制Demo

    本示例"java事件处理机制Demo"将深入探讨Java的观察者模式(Observer Pattern)及其在实际项目中的应用。 首先,我们来理解什么是观察者模式。观察者模式是一种行为设计模式,它定义了对象之间的一对多依赖关系,当...

    Java事件处理机制教学方法探讨.zip

    本教学方法探讨旨在深入理解并有效地教授Java事件处理,帮助学习者掌握这一关键技能。 Java事件处理基于观察者模式(Observer Pattern),其中事件源(如按钮或菜单)是被观察的对象,而事件监听器是观察者,负责...

    Java教学中事件处理机制的探讨.pdf

    Java 事件处理机制探讨 Java 事件处理机制是 Java 语言 GUI 编程中的一个重要内容,涉及到多个抽象的概念和复杂的对象之间的关系,对初次接触的学生来说,难以清晰地理解其原理。本文探讨了如何在教学中科学地讲授...

    用Java事件处理机制实现录制回放功能

    在本文中,我们将深入探讨如何利用Java事件处理机制实现录制和回放功能,这种功能常见于GUI测试工具中,用于捕获用户操作并在代码修改后自动回放这些操作。 1. Java 事件介绍 - **事件是什么**:在Java中,事件是...

    java面试题--反射机制

    通过本文,我们将深入探讨Java反射机制的核心概念、基本原理及其应用场景。 #### 二、Java反射机制简介 Java反射机制允许程序在运行时获取类的信息,这使得Java具有了一定程度上的动态性。具体来说,Java反射机制...

    Java学习事件机制小结

    本文将深入探讨Java中的事件处理,并结合一个具体的例子——登录功能的实现,来进一步阐述这一主题。 首先,我们需要了解Java事件模型的基础。在Java AWT(Abstract Window Toolkit)和Swing库中,事件处理主要基于...

    Java GUI编程中的事件处理机制详细讲解 (1)

    本文将围绕“Java GUI编程中的事件处理机制详细讲解(1)”这一主题展开,深入探讨组件类事件、动作类事件以及事件委托授权处理模型等内容,并结合实际案例进行说明。 #### 组件类事件与动作类事件 Java GUI编程中...

    JAVA事件处理指南

    本指南将深入探讨Java事件处理的原理、机制以及相关实践。 首先,Java事件处理基于Observer模式,即观察者模式。在这种模式下,事件源(通常是GUI组件,如按钮、文本框等)是被观察的对象,当它们的状态发生改变时...

    java事件 按钮单击事件 实例

    本实例将深入探讨Java事件处理机制,特别是按钮的单击事件。在Java Swing或JavaFX库中,我们可以创建按钮并定义其单击行为。以下是关于这个主题的详细讲解。 首先,我们需要导入必要的Java Swing库,如`javax.swing...

    JAVA的异常处理机制探讨

    JAVA的异常处理机制探讨,java日常处理技术与在设计中的应用

    Java的安全机制研究与分析

    本文基于给定的文件信息,深入探讨Java安全机制的关键组成部分及其运作原理。 ### Java安全机制的体系结构 Java安全架构的核心在于其设计时就充分考虑了安全因素,而不是后期添加的。这一设计思路主要体现在以下三...

    java 触发事件应用实例

    本篇将深入探讨Java事件处理机制,以及如何在实际应用中使用事件。 首先,事件源(Event Source)是能够产生事件的对象,通常是指组件,如按钮、文本框等。当用户与这些组件进行交互时,例如点击按钮或输入文本,就...

    观察者模式在Java事件处理中的应用研究.pdf

    本文将深入分析观察者模式的组成部分和应用场景,并探讨Java事件处理机制的原理,以及事件源、事件、监听器与观察者设计模式中各角色的对应关系。 观察者模式的组成部分包括被观察者(Subject)和观察者(Observer...

    JAVA多线程探讨 (2).pptx

    Java提供了同步机制来解决这个问题,包括`synchronized`关键字、`Lock`接口(如`ReentrantLock`)等。例如,以下代码中的`next()`方法可能引发竞态条件: ```java public int next(){ ++intValue; // danger ...

    候捷谈Java反射机制

    Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时获取和操作任何已知名称的类的内部信息。这一机制使得Java具备了一定的动态性,虽然在传统的分类中Java被视为静态类型语言。通过反射,开发者可以在...

Global site tag (gtag.js) - Google Analytics