C#:

 using System;
using System.Collections.Generic;
using System.Text; namespace Test1
{
class Program
{
/// <summary>
/// 主函数
/// </summary>
/// <param name="args">参数</param>
static void Main(string[] args)
{
EventSourceObject obj = new EventSourceObject();
obj.Name = "Child";
obj.Wakeup += new WakeupEventDelegate(obj_Wakeup);
obj.DoWakeup();
System.Console.Read();
} static void obj_Wakeup(object sender)
{
System.Console.WriteLine(((EventSourceObject)sender).Name + " wakeup.");
}
} /// <summary>
/// 唤醒事件委托
/// </summary>
/// <param name="sender">发送源</param>
public delegate void WakeupEventDelegate(object sender); /// <summary>
/// 事件源对象
/// </summary>
public class EventSourceObject
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; } /// <summary>
/// 唤醒事件
/// </summary>
public event WakeupEventDelegate Wakeup; /// <summary>
/// 唤醒(触发事件)
/// </summary>
public void DoWakeup()
{
System.Console.WriteLine("Parent wakeup.");
if (Wakeup != null)
{
Wakeup(this);
}
}
}
}

Java:

 import java.util.EventListener;
import java.util.EventObject; public class Main {
/*
* 主函数
*/
public static void main(String[] args){
EventSourceObject obj = new EventSourceObject();
obj.setName("Child");
// 注册事件
obj.setWakeupListener(new WakeupEventListener(){
@Override
public void fireEvent(WakeupEvent e){
super.fireEvent(e);
System.out.println(((EventSourceObject)e.getSource()).getName() + " wakeup.");
}
});
// 触发事件
obj.wakeup();
}
}
/*
* 定义唤醒事件
*/
class WakeupEvent extends EventObject{
private static final long serialVersionUID = 1L;
public WakeupEvent(Object source){
super(source);
}
}
/*
* 定义唤醒事件监听
*/
class WakeupEventListener implements EventListener{
public void fireEvent(WakeupEvent e){
System.out.println("Parent wakeup.");
}
}
/*
* 定义事件源对象
*/
class EventSourceObject{
private String name;
private WakeupEventListener listener;
/*
* 获取名称
*/
public String getName(){
return this.name;
}
/*
* 设置名称
*/
public void setName(String name){
this.name = name;
}
/*
* 设置唤醒事件监听
*/
public void setWakeupListener(WakeupEventListener listener){
this.listener = listener;
}
/*
* 唤醒(触发事件)
*/
public void wakeup(){
this.listener.fireEvent(new WakeupEvent(this));
}
}

c#与Java事件定义的不同的更多相关文章

  1. Java 事件机制

    java事件机制包括三个部分:事件.事件监听器.事件源. 1.事件.一般继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息,用于listener的相应的方法之中,作 ...

  2. JAVA事件监听机制学习

    //事件监听机制 import java.awt.*; import java.awt.event.*; public class TestEvent { public static void mai ...

  3. Java语言定义的线程状态分析

    说到线程,一定要谈到线程状态,不同的状态说明线程正处于不同的工作机制下,不同的工作机制下某些动作可能对线程产生不同的影响. Java语言定义了6中状态,而同一时刻,线程有且仅有其中的一种状态.要获取J ...

  4. java事件监听机制

    1.简单的事件监听 package demo2; /* * java事件监听机制 */ import java.awt.*; import javax.swing.*; import java.awt ...

  5. Java事件监听器的四种实现方式

    自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: import javax.swing.*; import java.awt.*; i ...

  6. Java事件监听的四种实现方式

    1.事件对象: 一般继承自java.util.EventObject对象,由开发者自行定义. 2.事件源: 就是触发事件的源头,不同的事件源会触发不同的事件类型. 3.事件监听器: 事件监听器负责监听 ...

  7. java事件监听机制2

    今天早上的两点收获: 1.addActionListener(其中的setActionCommand函数就是要对对象进行唯一性的标记,便于消息传来后进行处理.理论上actionlistener可以全部 ...

  8. JAVA事件监听机制的实现

    今天学习了java的事件编程机制,略有体会,先在此记下心得. 第一,首先明确几个概念. 事件源:一个产生或者触发事件的对象.事件:承载事件源状态改变时的信息对象.事件监听器接口:实际上就是一个类,该类 ...

  9. java 事件监听 - 鼠标

    java 事件监听 - 鼠标 //事件监听 //鼠标事件监听 //鼠标事件监听有两个实现接口 //1.MouseListener 普通的鼠标操作 //2.MouseMotionListener 鼠标的 ...

随机推荐

  1. Mybatis_总结_06_用_插件开发

    一.前言 Mybatis采用责任链模式,通过动态代理组织多个插件(拦截器),通过这些插件可以改变Mybatis的默认行为(诸如SQL重写之类的),由于插件会深入到Mybatis的核心,因此在编写自己的 ...

  2. @angular/cli项目构建--路由3

    路由定位: modifyUser(user) { this.router.navigate(['/auction/users', user.id]); } 路由定义: {path: 'users/:i ...

  3. PHP文件管理

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. nginx中关于并发数的问题worker_connections,worker_processes

    我认为,要搞清楚这个公式是否正确,以及如何计算的,那首先要对nginx的各个配置说明有清晰的认识: 从用户的角度,http 1.1协议下,由于浏览器默认使用两个并发连接,因此计算方法: nginx作为 ...

  5. MySQL实战 | 01-当执行一条 select 语句时,MySQL 到底做了啥?

    原文链接:当执行一条 select 语句时,MySQL 到底做了啥? 也许,你也跟我一样,在遇到数据库问题时,总时茫然失措,想重启解决问题,又怕导致数据丢失,更怕重启失败,影响业务. 就算重启成功了, ...

  6. NET持续集成与自动化部署

    https://www.cnblogs.com/hunternet/p/9590287.html 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们 ...

  7. rabbitmq的vhost与用户管理

    当我们在创建用户时,会指定用户能访问一个虚拟机,并且该用户只能访问该虚拟机下的队列和交换机,如果没有指定,默认的是”/”;一个rabbitmq服务器上可以运行多个vhost,以便于适用不同的业务需要, ...

  8. Node.js + Express

    相关链接: 1.https://www.jianshu.com/p/db4df1938eca 2.前端发起GET请求:http://localhost:3000/api/login?name=admi ...

  9. (C#)把磁盘目录树加载在窗体菜单中

    这又是一个没有技术含量的代码.写出来只是玩玩,所以也不敢放在首页. 这里有个问题,是获取文件/文件夹的图标.使用 System.Drawing.Icon.ExtractAssociatedIcon 只 ...

  10. Oracle 12C 新特性之 db默认字符集AL32UTF8、PDB支持不同字符集

    一. db默认字符集AL32UTF8Specify the database character set when you create the database. Starting from Ora ...