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

java事件模型

阅读更多


import java.util.*;
import java.awt.event.*;

public class EventModelTest {
public static void main(String[] args) {
// 开始测试事件
Demobean testbean = new Demobean();
testbean.addClickListener(new ClickListener() {
public void Click(ClickEvent e) {
System.out.println("A click event happended! click count:"
+ e.clickCount);
}
});
// 模拟一个事件(想像成在一个对象点了一下);
testbean.Click();
testbean.Click();
}
} // 事件对象,保存事件源和事件状态的信息。通常要继承EventObject,并以Event做后缀名。

class ClickEvent extends EventObject {
public Demobean source;
// 事件来源
public int clickCount; // 事件状态

public ClickEvent(Demobean source) { // 初始化对象
super(source);
this.source = source;
clickCount = 0;
}
};

// 事件监听器,通常继承自EventListener,并以Listener做后缀名。
interface ClickListener extends EventListener {
// 当事件发生时要执行的方法,可有多个。
void Click(ClickEvent event);
};

// 事件源,也就是要挷定事件的对象(可以是Swing组件哪JButton,也可以是自定义的类型)
class Demobean {
private Vector clicks = new Vector();
// 存储一或多个事件监听器
private ClickEvent event = new ClickEvent(this);

// 事件对象 //增加/订阅一个事件监听器
public synchronized void addClickListener(ClickListener listener) {
clicks.add(listener);
} // 移除/取消一个事件监听器

public synchronized void removeClickListener(ClickListener listener) {
clicks.remove(listener);
} // 处理事件程序,执行所有已经订阅的监听器中的click方法.

protected void doClickEvent() {
synchronized (this) {
System.out.println(clicks.size());
for (int i = 0; i < clicks.size(); i++) {
ClickListener listener = (ClickListener) clicks.get(i);
event.clickCount++;
listener.Click(event);
}
}
}

// 模拟一个事件(想像成在一个对象点了一下);
public void Click() {
doClickEvent();
}
}
分享到:
评论

相关推荐

    java事件模型详解

    一个台湾网站找到的java事件方面的资料,感觉挺好,与大家分享!

    Java 开发中事件驱动模型的实例详解

    在Java开发领域,事件驱动模型(Event-Driven Model)是一种广泛采用的设计模式,它通过响应外部事件来触发程序中的特定行为。本文将深入探讨Java中事件驱动模型的应用,特别是通过Swing框架的具体实例来解析这一...

    事件驱动模型实例详解(Java篇)

    ### 事件驱动模型实例详解(Java篇) #### 1. 事件驱动模型概念解析 事件驱动模型是现代软件开发中一种关键的编程模式,尤其在图形用户界面(GUI)编程中占据核心地位。该模型围绕三个核心概念构建:事件源、侦听...

    java事件传递技术

    Java事件模型主要基于观察者模式(Observer Pattern),在这个模型中,事件源(通常是GUI组件)是被观察的对象,而事件监听器则是观察者。当事件源发生特定事件时,会通知注册的监听器,调用监听器中的相应方法。...

    java事件处理编程范例

    Java事件模型基于发布/订阅模式,其中事件源(如按钮或文本框)是发布者,而事件监听器是订阅者。当事件发生时,事件源会触发事件,并通知已注册的监听器。Java Swing和JavaFX提供了丰富的组件库,这些组件都可以...

    Java 内存模型

    Java内存模型是Java虚拟机规范中定义的一部分,它规定了Java程序中变量的读写行为,以及线程之间的交互规则。理解Java内存模型对于编写正确、高效的多线程程序至关重要。在Java 5之前,Java内存模型的描述比较模糊,...

    java 内存模型 java 内存模型

    java 内存模型 java 内存模型 java 内存模型 java 内存模型

    java事件实例下载

    java 事件 实例 java事件 事件学习 简单的java事件模型,有注释 java 事件 实例 java事件 事件学习 简单的java事件模型,有注释 java 事件 实例 java事件 事件学习 简单的java事件模型,有注释

    Java中事件的详细底层实现

    随着Java版本的不断更新,事件处理模型也经历了从Java 1.0时代的事件模型到Java 1.1及后续版本中的事件委派模型(Event Delegation Model)的转变。 ##### 1.1 Java事件委派模型概述 事件委派模型是Java 1.1之后引入...

    Java的Events事件实例

    Java的事件模型支持多种类型的事件,包括鼠标事件、键盘事件、窗口事件等。在GUI编程中,熟练掌握事件处理机制是构建交互式应用的关键。`events-BeeperProject`这样的实例提供了实践机会,帮助开发者了解如何在实际...

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

    7. **事件分发机制**:Java事件模型采用多路复用(多播)的方式,一个事件可以被多个监听器处理。事件源会将事件发送给所有已注册的监听器。 8. **Swing事件与AWT事件**:虽然Swing是建立在AWT之上的,但它的事件...

    事件模型探究及配套源码

    本文将深入探讨事件模型的各个方面,包括函数指针的进化、Java、.NET(C#)、DOM与JavaScript以及Flex和ActionScript3的事件模型。 首先,函数指针进化论讲述了编程中处理函数引用的方式如何演变。早期的编程语言中...

    新安江模型java_Java_新安江模型

    新安江模型:三层蒸发模型、三水源划分产流

    JAVA AWT事件模型教学实例

    JAVA AWT事件模型是Java图形用户界面开发的基础部分,它主要负责处理用户的交互操作,如鼠标点击、键盘输入等。在AWT(Abstract Window Toolkit)中,事件模型采用了一种称为"冒泡"的机制,即事件从底层组件开始,...

    深入理解Java内存模型

    Java内存模型是并发编程中一个至关重要的概念,它定义了共享变量的访问规则,以及这些变量如何在多线程环境下进行读写操作。在深入理解Java内存模型之前,我们需要先了解并发编程模型的分类,然后掌握Java内存模型的...

    Java教程之AWT事件模型

    Java教程之AWT事件模型

    cpu 内存模型和java内存模型

    Java程序员了解CPU以及相关的内存模型,对于深入理解Java内存模型以及并发编程至关重要。CPU作为计算机硬件的核心,其架构和工作原理影响着软件的性能和执行效率。尤其在Java这种多线程、高并发的编程语言中,对CPU...

    Java的事件处理模型

    事件处理模型(一看就懂) 2.鼠标事件处理 鼠标是一种最常见的输入方式。用户可以用鼠标绘制图形,利用鼠标实现特殊的控制,例如游戏操作的控制等功能。Java语言中主要提供了三种不同类型的鼠标事件: 鼠标键事件; ...

    Java内存模型的历史变迁

    ### Java内存模型的历史变迁 #### 一、引言 随着多核处理器的普及与高性能计算需求的增长,Java作为主流编程语言之一,对于并发处理的支持变得越来越重要。Java内存模型(Java Memory Model,简称JMM)作为Java...

    ARMA模型与ARIMA模型java实现例程

    在这个Java实现的例程中,你将找到这些模型的具体代码,方便你在自己的项目中进行复用和调试。 首先,让我们深入理解ARMA模型。ARMA模型是AR(自回归)模型和MA(移动平均)模型的组合。AR模型假设当前的观测值是...

Global site tag (gtag.js) - Google Analytics