`
pengcqu
  • 浏览: 774565 次
  • 性别: Icon_minigender_1
  • 来自: 未来
社区版块
存档分类
最新评论

Java事件处理机制与“恋爱关系”

阅读更多

  JAVA中事件处理机制是观察者模式或者说委托(授权)管理的一种。

 

1、在理解JAVA中事件处理机制前我们必须先理解三个重要的概念:
   事件源:产生事件的对象;
   事件处理器(监听器):负责处理事件的方法。
   事件对象:用于在事件源与事件处理器间传递信息的桥梁。
   它们之间的关系是:当事件源产生事件时,通过事件调用监听器相应的事件处理方法。

 

2、通过恋爱关系模拟事件处理机制:女孩子(事件源)产生高兴或不高兴的情绪(事件对象)时,男朋友(监听器)应该怎么做。
   1、确定三个类:Gril,Emotion,Boy
   2、Gril:要有一个名字属性,一个男朋友的属性(不可能满大街随便找个人给听你发牌气吧),还有一个add添加男朋友的方法。还有一个remove分手的方法。
      Boy:要有一个名字属性,要有happy,和unhappy的两个在女朋友找你时做相应处理的方法吧。他还要有监听器的功能,所以要实现EventListener接口吧。我们在查看到EventListener只是一个简单的标记接口,所以我们一般创建一个具体有点功能的监听接口EventListen具有happy,unhappy抽像方法,而Boy通过实现这个接口,来完成有个性的处理方法。
      Emotion:是一个事件对象,凭什么它就是一个事件对象呀,它要继承EventObject吧。查帮助看下。其中有一个方法getSource,通过这个方法就可以找到事件源了吧。通过查看EventObject构造方法,没有无参的构造方法,而创建对象默认是向上调用父类无参构造方法的,这样会出现错误,所以我们必须写一个含参的调用父类构造方法。
  3、Boy要根据Gril产出的不同事件对象使用不同的处理方法时,要接受事件对象(Emotion)的传入吧。即方法接收传入参数。
  4、Gril:有一个发牌气的方法fire,假设她1,3,5 happy,2,4,6 unhappy,7分手。
  5、前面已经实现了事件处理机制模型,为了更完善点使程序有多个男孩子追,并且加入异常处理。

import java.util.*;

class Gril {
	String name;
	Boy b;// 男朋友的属性

	public Gril(String name) {
		this.name = name;
	}

	public void addBoy(Boy b) throws MyHeartException // 相当注册监听器
	{
		// 添加男朋友
		if (this.b == null) {
			this.b = b;
			System.out.println("haha,I have boyfriend now");
		} else {
			throw new MyHeartException("I have boyfriend,wait me for a week");
		}
	}

	public void remove() {
		this.b = null;
		System.out.println("sorry,you never understand me!");
	}

	public void fire() {
		if (b == null)
			System.out.println("I have not boyfriend now!");
		else {
			Emotion e = new Emotion(this);
			for (int i = 1; i < 7; i++) {
				if (i % 2 == 0)
					b.unhappy(e);
				else {
					b.happy(e);
				}
			}
			remove();
		}
	}
}

 

 

class Boy implements EventListen {
	String name;

	public Boy(String name) {
		this.name = name;
	}

	public void happy(Emotion e) {
		Gril g = (Gril) e.getSource();
		System.out.println(name + " said :" + g.name + " you happy,I happy.");
	}

	public void unhappy(Emotion e) {
		Gril g = (Gril) e.getSource();
		System.out.println(name + " said :" + g.name
				+ " Do not worry!you have my too!");
	}
}

 

  

import java.util.EventObject;

class Emotion extends EventObject {
	public Emotion(Object src) { // EventObject的构造方法只有无参的构造方法
		super(src); // 所以只有显示的调用,src代表事件源
	}
}

 

 

import java.util.EventListener;

interface EventListen extends EventListener{
	 void happy(Emotion e);
	 void unhappy(Emotion e);
}


 

public class Test {
	public static void main(String[] args) {
		Gril g = new Gril("Anna");
		Boy b1 = new Boy("Tom");
		Boy b2 = new Boy("Jon");
		try {
			g.addBoy(b1);
			g.addBoy(b2);
		} catch (Exception e) {
			e.printStackTrace();
		}
		g.fire();
	}
}

class MyHeartException extends Exception {
	public MyHeartException(String str) {
		super(str);
	}
}

 

 

  相关链接:  

★  Java知识点汇总 

全球软件项目外包平台 兼职做外包 挣Money!

分享到:
评论

相关推荐

    JAVA事件处理机制

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

    java事件处理机制

    Java事件处理机制是Java GUI编程中的重要组成部分,它允许用户与图形界面进行交互。在Java中,事件处理涉及事件源(Event Source)、事件(Event)和事件监听器(Event Listener)。当用户执行某个操作,如点击按钮...

    项目教学法的设计——以java事件处理机制为例.pdf

    项目教学法的设计——以java事件处理机制为例 在计算机科学和技术教育中,项目教学法是一种非常重要的教学方法之一。它可以让学生更好地理解和掌握知识,并提高学生的实践能力和解决问题的能力。下面,我们将通过...

    Java的事件处理机制剖析.pdf

    该机制中事件发生和事件处理是分离的,用户操作与程序逻辑相对独立,如果希望事件源上发生的事件被程序处理,就要把事件源注册给能够处理该事件源上那种类型事件的监听者。 二、Java事件处理过程 Java事件处理过程...

    JAVA事件处理机制.doc

    【JAVA事件处理机制详解】 Java 事件处理机制是GUI(图形用户界面)编程中的核心组成部分,它使得程序能够响应用户的操作,如点击按钮、选择菜单项等。在Java中,事件处理主要涉及到事件源(Event Source)、事件...

    JAVA事件处理指南

    总的来说,《JAVA事件处理指南》这本书将带领读者深入了解Java中的事件处理机制,包括事件源、事件、监听器的使用,以及如何构建响应用户操作的应用程序。通过实践书中提供的代码示例,开发者可以更熟练地运用这些...

    java中的事件机制

    Java中的事件机制是Java编程中一个重要的概念,它基于观察者模式(Observer Pattern)来实现对象之间的通信。观察者模式是一种行为设计模式,允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的...

    Android应用程序输入事件处理机制

    在Android应用程序中,有一类特殊的消息,是专门负责与用户进行交互的,它们就是触摸屏和键盘等输入事件。触摸屏和键盘事件是统一由系统输入管理器InputManager进行分发的。也就是说,InputManager负责从硬件接收...

    JAVA的异常处理机制

    JAVA的异常处理机制 java学习,值得学习

    基于Java异常处理机制的分析.pdf

    "基于Java异常处理机制的分析" 本文主要讨论了Java异常处理机制的原理和应用。Java是一种面向对象的编程语言,对异常处理的支持非常出色。Java通过类来封装异常,并使用“try/ catch/finally”机制来处理异常,最后...

    Java事件处理机制(自定义事件)实例详解

    Java事件处理机制是Java编程中一个重要的概念,主要用于在用户界面或者系统中处理各种交互事件。在Java中,事件处理通常涉及到三个核心组件:事件对象(Event Object)、事件源(Event Source)和事件监听器(Event ...

    上机实践7组件及事件处理2.pdf

    Java 事件处理机制与组件实践 本节课主要讲解 Java 事件处理机制和组件实践,通过实践实验,深入了解 Java 事件处理机制的实现方式和组件的使用。 事件处理机制是 Java 语言中的一种基本机制,用于处理用户交互...

    Java中事件处理.pdf

    本文主要探讨了Java AWT库中的事件处理机制,包括事件、事件源、事件监听器和事件处理器的概念。 1. **事件处理机制**: Java的事件处理机制是基于事件驱动编程模型的,即当用户执行特定操作(如点击、按键等)时...

    谈Java技术中的事件处理与应用.pdf

    事件处理与应用在Java技术中的实现 事件处理是Java技术中的一个重要概念,它是指当执行某一操作(如:点击按钮)后,程序应该有所反映(产生事件),然后对对事件进行处理。Java语言采取“委派事件模型”进行事件...

    java 旋转中的风扇

    Java 事件处理是指 Java language 中的一种机制,用于处理用户界面事件,例如按钮点击、鼠标移动、键盘输入等。Java 事件处理机制使用 Observer 模式来实现,观察者(Observer)对象注册到被观察者(Observable)...

    基于Java的安卓事件机制设计与实现源码

    该项目为安卓实验3的成果,通过Java语言实现了安卓事件机制的设计与实现,源码包含45个文件,其中包括17个XML配置文件、10个PNG资源文件、5个Java源代码文件以及少量辅助文件,如Git忽略、Gradle构建脚本等。...

    Java语言的异常处理机制研究

    主要讲解Java中的常见异常处理机制,多Java中出现的异常进行了透彻的分析与讲解。

Global site tag (gtag.js) - Google Analytics