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. JavaUtil_10_joda-time_用法入门

    二.参考资料 1. Joda-Time 2.jodaTime 的使用说明 3.强大易用的日期和时间库 Joda Time

  2. 在C#中,Json的序列化和反序列化的几种方式

    摘自:http://www.cnblogs.com/caofangsheng/p/5687994.html 在这篇文章中,我们将会学到如何使用C#,来序列化对象成为Json格式的数据,以及如何反序列化 ...

  3. Codeforces Round #286 (Div. 2)A. Mr. Kitayuta's Gift(暴力,string的应用)

    由于字符串的长度很短,所以就暴力枚举每一个空每一个字母,出现行的就输出.这么简单的思路我居然没想到,临场想了很多,以为有什么技巧,越想越迷...是思维方式有问题,遇到问题先分析最简单粗暴的办法,然后一 ...

  4. 机器学习敲门砖:任何人都能看懂的TensorFlow介绍

    机器学习敲门砖:任何人都能看懂的TensorFlow介绍 http://www.jiqizhixin.com/article/1440

  5. BZOJ - 1036 树的统计Count (树链剖分+线段树)

    题目链接 #include<bits/stdc++.h> using namespace std; typedef long long ll; ,inf=0x3f3f3f3f; ],mx[ ...

  6. vector的简单运用(士兵队列训练问题)

    某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序 ...

  7. LeetCode 480. Sliding Window Median

    原题链接在这里:https://leetcode.com/problems/sliding-window-median/?tab=Description 题目: Median is the middl ...

  8. poj2411 Mondriaan's Dream[简单状压dp]

    $11*11$格子板上铺$1*2$地砖方案.以前做过?权当复习算了,毕竟以前学都是浅尝辄止的..常规题,注意两个条件:上一行铺竖着的则这一行同一位一定要铺上竖的,这一行单独铺横的要求枚举集合中出现连续 ...

  9. winrm service

    今天看脚本忽然发现一个服务,叫winRM服务,这是个PowerShell的远程管理.开启它可以很大程度的方便用PowerShell操控! 下面是我找到的一些资料: 在Linux中,我们可以使用安全的S ...

  10. html5 日常小结

    HTML5新标签汇总 1.  html5新的 (input type=类型) 元素 <input type="number" name="quantity" ...