文档章节

Java中事件处理

李茂冉
 李茂冉
发布于 2016/05/15 14:22
字数 290
阅读 28
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

###事件处理 与c#中的委托相似,Java中事件的原型就是observer设计模式。

代码示例1:

interface WaterOkListener{
	void actionWaterOk();	
}

class Water{
	java.util.List<WaterOkListener>waterOk =new java.util.ArrayList<WaterOkListener>();
	
	//绑定事件
	public void addWaterOkListener(WaterOkListener sender){
		waterOk.add(sender);
	}
	//取消绑定
	public void removeWaterOkListener(WaterOkListener e){
		waterOk.remove(e);
	}

	//触发事件
	public void waterOk(){
		
		System.out.println("水开了!");
		for(int i=0;i<waterOk.size();i++){
			waterOk.get(i).actionWaterOk();	
		}	
	}
}
class Zhangsan implements WaterOkListener{

	public void actionWaterOk(){
		System.out.println("张三去提水去了!!");	
	}
}
class Lisi implements WaterOkListener {
	
	public void actionWaterOk(){
		System.out.println("李四去提水去了!");	
	}	
}

class waterTest{
	public static void main(String[]args){
		Lisi f=new Lisi();
		Zhangsan z=new Zhangsan();
		Water w=new Water();
		w.addWaterOkListener(f);
		w.addWaterOkListener(z);
		w.waterOk();	
	}
}

代码示例2:

package java事件;

import java.util.*;


//最简单的事件

interface WakenUpListener
{
	void actionWakenUp();
}

class Child
{
	private boolean wakeUp = false;
	private List<WakenUpListener> wakenUp = new ArrayList<WakenUpListener>();

	public void addActionListener(WakenUpListener w)
	{
		wakenUp.Add(w);
	}
	public void removeActionListener(WakenUpListener e)
	{
		wakenUp.Remove(e);
	}

	public void wake()
	{
		System.out.println("小孩醒了!");
		for (int i = 0; i < wakenUp.size(); i++)
		{
			wakenUp.get(i).actionWakenUp();
		}
	}
}

class Father implements WakenUpListener 
{
	public void actionWakenUp()
	{
		System.out.println("喂小孩东西吃!");
	}
}
class GrandFather implements WakenUpListener 
{
	public void actionWakenUp()
	{
		System.out.println("抱小孩出去玩!");
	}
}
class Dog implements WakenUpListener
{
	public void actionWakenUp()
	{
		System.out.println("汪汪汪...");
	}
}


class test
{
	public static void main(String[] args)throws Exception 
	{
		Dog d = new Dog();
		Father f = new Father();
		GrandFather g = new GrandFather();
		Child c = new Child();
		c.addActionListener(d);
		c.addActionListener(f);
		c.addActionListener(g);
		Thread.sleep(200);
		c.wake();
		c.removeActionListener(d);
		c.wake();
	}
}
李茂冉
粉丝 6
博文 103
码字总数 59256
作品 0
东城
高级程序员
私信 提问
加载中
请先登录后再评论。
Netty那点事(三)Channel与Pipeline

Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空间》的...

黄亿华
2013/11/24
2W
22
访问安全控制解决方案

本文是《轻量级 Java Web 框架架构设计》的系列博文。 今天想和大家简单的分享一下,在 Smart 中是如何做到访问安全控制的。也就是说,当没有登录或 Session 过期时所做的操作,会自动退回到...

黄勇
2013/11/03
3.5K
8
程序猿媛一:Android滑动翻页+区域点击事件

滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段。文尾附注源码获取途径。 转载请保留原文出处“http://my.oschina.net/gluoyer...

花佟林雨月
2013/11/09
4.3K
1
5分钟 maven3 快速入门指南

前提条件 你首先需要了解如何在电脑上安装软件。如果你不知道如何做到这一点,请询问你办公室,学校里的人,或花钱找人来解释这个给你。 不建议给Maven的服务邮箱来发邮件寻求支持。 安装Mav...

fanl1982
2014/01/23
1.2W
7
代码生成器--Codgen

Codgen是一个基于数据库元数据模型,使用freemarker模板引擎来构建输出的代码生成器。freemarker的数据模型结构通常来说都是一个Map树状结构模型,codgen也不例外,它的数据模型这棵树的根节...

黄天政
2013/01/29
1.4W
2

没有更多内容

加载失败,请刷新页面

加载更多

获取JavaScript数组中的所有唯一值(删除重复项) - Get all unique values in a JavaScript array (remove duplicates)

问题: I have an array of numbers that I need to make sure are unique. 我需要确定一个唯一的数字数组。 I found the code snippet below on the internet and it works great until th......

javail
40分钟前
11
0
如何检查字符串是否为空? - How to check if the string is empty?

问题: Does Python have something like an empty string variable where you can do: Python是否有类似空字符串变量的内容可以在其中执行: if myString == string.empty: Regardless, wh......

富含淀粉
今天
7
0
您如何存储未跟踪的文件? - How do you stash an untracked file?

问题: I have changes to a file, plus a new file, and would like to use git stash to put them away while I switch to another task. 我对一个文件进行了更改,再加上一个新文件,并希......

技术盛宴
今天
39
0
GeoPandas入门 | 01-地理数据介绍

01-地理数据介绍 1.1 Python地理空间矢量数据简介 %matplotlib inlineimport pandas as pdimport geopandas 导入地理数据 地理空间数据通常可以从特定的GIS文件格式或数据存储中获得,如...

酱肉包-
今天
25
0
OSChina 周三乱弹 —— 我是不是也有王室血统

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @小小编辑推荐,《我们》- 陈奕迅 《我们》- 陈奕迅 手机党少年们想听歌,请使劲儿戳(这里) @举个栗子OSC :快抬头看天!!! 雨后还有彩虹...

小小编辑
今天
59
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部