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. LeetCode OJ:Lowest Common Ancestor of a Binary Search Tree(最浅的公共祖先)

    Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BS ...

  2. LeetCode OJ:Rotate Array(倒置数组)

    Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array  ...

  3. MQTT 在 mac 上搭建

    http://blog.csdn.net/YAJUN0601/article/details/41981399 MQTT is a machine-to-machine (M2M)/"Int ...

  4. 201621123014《Java程序设计》第八周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 答: 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: Arr ...

  5. Linux 下如何调试 Python?

    一般开发者都是在 IDE 中进行程序的调试,当然,有 IDE 的话,当然首选 IDE 进行调试. 但是,有时我们的业务场景,限制只能在 Linux 命令行模式进行调试. 这时该怎么办呢? 今天,就给大 ...

  6. LeetCode Image Smoother

    原题链接在这里:https://leetcode.com/problems/image-smoother/description/ 题目: Given a 2D integer matrix M re ...

  7. OpenJudge9278:旅行

    总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  131072kB 描述 转眼毕业了,曾经朝夕相处的同学们不得不都各奔东西,大家都去了不同的城市开始新的生活.在各自城 ...

  8. java 实现插入排序

    sorted数组第0个位置没有放数据 从sorted数组的第二个数据开始处理 package com.learn; public class InsertionSort { public static ...

  9. 批处理执行多个SQL文件到oracle

    最近因为项目需要,打算写一个批处理程序,更新数据库中的表数据.写了3个sql文件:a.sql,b.sql,c.sql,在这三个文件中,实现了创建表,并向表中插入数据的操作.目前我通过SQLPLUS可以 ...

  10. docker 摆渡镜像脚本

    #!/bin/bash if [ $# != 1 ];then echo "Param error";exit; fi DOCKER_NAME=$1 IMAGE_TAG=${DOC ...