`
huxiuliang
  • 浏览: 118901 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java的监听方法

    博客分类:
  • Java
阅读更多


package dome1;

import java.util.Vector;

/*
 在一个类A中写一个事件evt, 
 当A中的某个值变化时,就触发evt, 
 
 然后写另外一个类B,监听A中的event1事件,  */

public class A {
   
    private Vector aListeners = new Vector();
   
    private int value;
   
    public int getValue() {

    return value;
    }
   
    public void setValue(int newValue) {

    if (value != newValue) {
        value = newValue;
        AEvent evt = new AEvent(this, value);//可以写到外面取初始化
        // 如果值改变的话,就触发事件
        fireAEvent(evt);
    }
    }
   
    public synchronized void addAListener(AListener a) {

    aListeners.addElement(a);
    }
   
    public synchronized void removeAListener(AListener a) {

    aListeners.removeElement(a);
    }
   
    public void fireAEvent(AEvent evt) {

    Vector currentListeners = null;
    synchronized (this) {
        currentListeners = (Vector) aListeners.clone();//返回副本
    }
    for ( int i = 0 ; i < currentListeners.size() ; i++) {
        AListener listener = (AListener) currentListeners.elementAt(i);
        listener.doSth(evt);
    }
    }
}


----------------------------

package dome1;

import java.util.EventObject;


//定义事件
public class AEvent extends EventObject {
   
    private int value;
   
      
    public AEvent(Object source, int newValue) {

    super(source);
    value = newValue;
    }

  
}
------------------

package dome1;


//定义接口,当事件触发时调用
public interface AListener extends java.util.EventListener {
   
    public void doSth(AEvent e);
}

-----------------------


package dome1;

class B implements AListener {
   
    public B() {

    A a = new A();
    a.addAListener(this);
    try {
        Thread.sleep(3000);
        // 改变属性,触发事件
        a.setValue(1);
    } catch (InterruptedException ex) {
        ex.printStackTrace();
    }
    }
   
    public static void main(String[] args) {

    new B();
    }
   
    public void doSth(AEvent e) {

    System.out.println("改变事件发生");
   
    }
}

分享到:
评论

相关推荐

    java事件监听方法和代码

    Java事件监听器即一组动作接口。如键盘事件KeyEvent对应的接口是: public interface KeyListener extends EventListener { public void keyPressed(KeyEvent ev); public void keyReleased(KeyEvent ev); public ...

    java监听器的实现和原理详解

    Java监听器的实现和原理详解 Java监听器是一种非常重要的设计模式,在Java中广泛应用于事件驱动编程。监听器模式的主要思想是将事件源和事件处理器分离,使得事件源可以独立于事件处理器,提高了系统的灵活性和可...

    Java监听键盘鼠标全局事件[定义].pdf

    Java监听键盘鼠标全局事件 Java监听键盘鼠标全局事件是指使用Java语言来监听和处理键盘和鼠标事件的技术。这项技术广泛应用于游戏开发、自动化测试、屏幕阅读器等领域。下面是Java监听键盘鼠标全局事件的详细知识点...

    JAVA USB监听器

    【JAVA USB监听器】是一种基于Java编程语言实现的软件工具,其主要功能是对USB设备进行实时监控,当USB设备插入时,能够自动检测并复制指定类型的文件到预先设定的目录中。这种工具对于需要频繁从USB设备中获取特定...

    Java实现时间监听

    总的来说,Java提供了多种方式来实现时间监听,可以根据应用场景选择合适的方法。无论是简单的定时任务,还是复杂的事件驱动,都能通过上述手段灵活处理。在实际开发中,合理运用这些工具能帮助我们构建出更健壮、...

    java 监听windows系统热键组合

    在Java编程环境中,有时我们需要实现一个功能,即监听Windows系统的热键组合,以便在用户按下特定的键盘快捷键时执行相应的操作。这个功能在开发桌面应用程序时非常有用,特别是使用Swing作为UI框架的时候。标题提到...

    java监听器练习

    ### Java监听器基础知识与实践 #### 一、Java监听器概念 在Java中,监听器是一种用于处理特定事件的对象。当某个事件发生时(如按钮点击、键盘输入等),监听器将被调用来执行相应的操作。Java中的监听器机制是基于...

    java一个监听器的例子

    在Java编程中,监听器...在提供的压缩包文件“05_监听器”中,可能包含更多关于Java监听器的实例代码和讲解,可以帮助深入理解这一主题。建议查看这些文件,动手实践并调试代码,以便更好地掌握Java监听器的使用。

    JAVA监听斗鱼直播间弹幕

    在本文中,我们将深入探讨如何使用Java编程语言来监听斗鱼直播间的弹幕信息。斗鱼是中国一个流行的在线游戏直播平台,它允许观众通过发送弹幕与其他观众和主播互动。要实现这一功能,我们需要理解Java网络编程、JSON...

    Java设计模式之监听器模式实例详解

    监听器模式是Java设计模式中的一种行为型模式,主要用于监听某些事件的发生,并在事件发生时自动执行预定义的操作。在实际开发中,监听器模式可以用于多种场景,如UI事件处理、事件广播、异步通知等。 在监听器模式...

    java 监听本地文件自动上传服务器

    本篇文章将详细探讨如何使用Java实现本地文件监听,并自动将其上传至服务器,以实现文件同步功能。 首先,让我们从“JAVA 监听文件夹变化”这个知识点开始。Java提供了一种称为`WatchService`的机制,它允许程序...

    java监听数据库

    ### Java监听数据库的背景与意义 在现代软件开发中,数据库是存储和管理数据的核心组件。为了确保数据的一致性和完整性,开发者需要能够监控并响应数据库中的变化。Java监听数据库的概念主要涉及到数据库触发器、...

    java 监听器练习

    ### Java监听器基础知识与实践 #### 一、Java监听器概念 在Java中,监听器是一种用于处理事件的机制。当某个特定类型的事件发生时,监听器会执行相应的操作。这种机制广泛应用于图形用户界面(GUI)编程中,使得...

    java监听器demo

    一个java监听器的实现demo,即观察者设计模式实现

    Java监听器添加 四种监听器 内部 外部 内部匿名 自身

    ### Java监听器添加:四种监听器(内部、外部、内部匿名、自身) #### 一、引言 在Java中,监听器(Listener)是事件处理机制的重要组成部分,它主要用于响应用户或其他组件产生的事件。根据实现方式的不同,可以...

    用java实现监听对象的属性变更

    学会使用监听域对象的属性变更 2、 实验环境 Eclipse 3、 实验内容 (1)创建测试页面,在chapter08项目的WebContext根目录中,编写一个testattribute.jsp页面,以观察各个域对象属性事件监听器的作用。 (2)在...

    java监听器

    这篇博客“java监听器”可能详细解释了如何在Java中使用监听器以及它们在实际项目中的应用。 首先,我们来理解什么是Java监听器。在Java Swing或JavaFX等GUI库中,监听器是接口,实现了这些接口的类可以“监听”...

    java监听者模式三个实例

    在这个"java监听者模式三个实例"中,我们将深入探讨如何使用监听者模式来实现事件驱动的编程。 1. **监听者模式的基本概念** - **观察者(Observer)**:即监听者,它定义了接口用于接收被观察者的通知。 - **被...

    基于java开发的局域网监听软件的设计.doc

    基于java开发的局域网监听软件的设计.doc 基于java开发的局域网监听软件的设计.doc 基于java开发的局域网监听软件的设计.doc 基于java开发的局域网监听软件的设计.doc 基于java开发的局域网监听软件的设计.doc 基于...

Global site tag (gtag.js) - Google Analytics