问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

java 自定义事件的触发及监听

发布网友 发布时间:2022-04-27 04:32

我来回答

4个回答

热心网友 时间:2022-06-26 06:44

JAVA事件响应机制

1,先自定义一个事件

public class MyEvent extends java.util.EventObject{
public MyEvent(Object source)
{
super(source);
}
}

2,再自定义一个*

public class MyListener implements java.util.EventListener{
//这里是当事件发生后的响应过程
public void EventActivated(MyEvent me)
{
System.out.println("事件已经被触发");
}
}

3,以下这个类为触发事件的事件源

public class MyObject {
private Vector vectorListeners=new Vector();

public synchronized void addMyListener(MyListener ml)
{
vectorListeners.addElement(ml);
}

public synchronized void removeMyListener(MyListener ml)
{
vectorListeners.removeElement(ml);
}

protected void activateMyEvent()
{
Vector tempVector=null;

MyEvent e=new MyEvent(this);

synchronized(this)
{
tempVector=(Vector)vectorListeners.clone();

for(int i=0;i<tempVector.size();i++)
{
MyListener ml=(MyListener)tempVector.elementAt(i);
ml.EventActivated(e);
}
}

}

//定义一个公用方法用于触发事件
public void test()
{
activateMyEvent();
}
}

4,测试类

public class Test {

public static void main(String[] args)
{
MyObject mo=new MyObject();

//注册该事件
mo.addMyListener(new MyListener());

//触发该事件
mo.test();
}
}

热心网友 时间:2022-06-26 06:44

import java.awt.event.*;
import java.util.*;
interface MyListener
{
void begin(First first);
}
class Control implements MyListener
{
First first;public void newGame(First first)
{
this.first = first;
first.start();
}
@Overridepublic void begin(First firstone)
{
System.out.println("second go on");
}
}
class First
{
private Set<MyListener>listeners = new HashSet<MyListener>();
public void action()
{
System.out.println("First begin");
}
private class FirstThread implements Runnable
{
public void run()
{
while (true)
{
action();
for (MyListener sl : listeners)
{sl.begin(First.this);
}
try {Thread.sleep(1000);}
catch (InterruptedException e)
{e.printStackTrace();}
}
}
}
public void start()
{
new Thread(new FirstThread()).start();
}
public void addMyListener(MyListener ml)
{
if (ml != null)
{listeners.add(ml);
}
}
}
public class TestEvent
{public static void main(String args[])
{
First first = new First();
Control c = new Control();
first.addMyListener(c);
c.newGame(first);
}
}
运行结果
First begin
second go on
First begin
second go on
First begin
second go on
First begin
second go on

热心网友 时间:2022-06-26 06:45

创建一个监视器喽

热心网友 时间:2022-06-26 06:46

其实这东西归咎到底就是一个监听者模式,自己写一个就行了~关于监听者模式网上的资料比较多,自己查查就行了。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
王子变青蛙2演员表 《清乐居 村居》"村居"表示什么 dota 中遇到垃圾队友怎么办 婆婆左手手背肿了三四年了,也不疼也不痒的,有谁知道是什么事吗?_百度... 手背上起了个包 硬的 不疼不痒 应该怎么处理 玩DOTA遇到SB队友怎么办 dota的时候遇到SB队友怎么办? 矿产资源,水资源,生物资源,大气资源有什么不同 手背突然就肿了,不疼也不痒,这是怎 么回事呀? 手背浮肿,不痛不痒的,其他没感到不适?是什么原因 如何在程序中定义触发某事件的快捷键或菜单 再问Vc++中,如何定义一个callback函数和它的触发事件 在SqlServer中定义触发器 SQL中的断言、触发的定义 高分求高手,jquery的autocomplete怎么自定义触发事件 cino如何设置用户自定义触发指令 mysql创建触发器的定义怎么定义? 如何定义触发电压 如何定义一个触发器,当删除表中数据时,先将删除的数据插入到另一个... 如何定义一个触发器 梦见老板没穿衣服跑步 梦见老板娘给我一双童鞋。我不管穿是什么意思? 梦见老板穿唐僧的衣服 梦见我穿了一双新鞋子是老板娘的,我的鞋子不见了是怎么回事啊? 梦见老板穿民工服装 梦见老板娘给我买了件衣服小了 梦见老板娘叫我陪她去签合同,还有三对好看的鞋子? 梦见老板要穿很破的衣服 我昨天晚上梦见老板娘给我她以前的两件旧衣服是冬天穿的衣服请问这个梦意味着什么? 昨晚上作了一个怪梦,梦见自己穿了老板娘的裤子,她有两条一样的白色,不知道是什么意思!!! 数据库触发器定义问题求帮助 c# 如何在方法中触发一个系统定义的事件 安卓线性布局,下滑时组件才出现,才触发事件,怎么定义啊?? 漏电断路器和空气开关有什么区别 sql中 如何定义 删除 触发器 漏电断路器和空气开关有哪些区别,漏电断路器和空气开关用处是一样的吗? 空气开关和漏电断路器是一回事吗 空气开关与漏电保护器有什么不同? 漏电开关与空气开关哪个安装在先好您好? 谁了解漏电断路器断路器与空气开关有什么区别 空气开关和漏电开关的区别是什么该如何应用才好 漏电断路器与空气开关的工作原理和各自用途 漏电断路器是不是空气开关? 空气开关和漏电保护器那个好 抖音破播放是什么意思? 抖音破播放后是不是每天播放量很大 拼多多作品如何破播放 讲一讲啥叫:“破播放”? 抖音破播放量是一小时以内还是一天计算呢? 对口型需要开通哪些 功能 才能破播放
  • 焦点

最新推荐

猜你喜欢

热门推荐