首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
首页 | JAVA | C# | VB | VB.NET | C/C++ | delphi | 工程管理 | 其他语言 | 论坛
各大城市软件开发培训、软件人才免费咨询热线:400-700-5807
 您现在的位置: 中国IT实验室 >> 桌面开发 >> JAVA >> 正文
用Java事件处理机制实现录制回放功能
来源:ChinaItLab 作者:佚名 时间:2007-5-30

  下面的代码简单说明了如何捕获事件:

 
  import java.awt.EventQueue; 
import java.awt.*; 
import java.util.*; 
public class MyQueueEvent extends EventQueue {//定义EventQueue的子类 
  public MyQueueEvent() { 
  } 
  public static void main(String[] args) { 
    SimpleExample.main(new String[]{null}) ; 
    MyQueueEvent myQueueEvent1 = new MyQueueEvent(); 
    Toolkit.getDefaultToolkit().getSystemEventQueue().push(myQueueEvent1) ; 
  } 
//在这里重载事件分发的方法 
  public void dispatchEvent(AWTEvent ae){ 
     
    if(ae.getSource() instanceof javax.swing.JButton) 
    System.out.println("My apture:"+((javax.swing.JButton)ae.getSource()).getText()) ; 
    super.dispatchEvent(ae); 
  } 
  

  这个程序可以打印出当前应用的所有的事件,可以将这些事件中选出你需要的事件保存当然你还需要解析该控件的特征。在上面加黑部分的代码,打印事件源控件的名称。

  除此之外,还可以通过实现java.awt.event. AWTEventListener接口实现对事件的捕获。这个侦听器接口可以接收Component or MenuComponent 以及它们的派生类在整个系统范围内所分发的事件,AWTEventListeners只是被动的监控这些事件。如果要监控系统事件,除了要实现接口,还要用Toolkit的addAWTEventListener方法注册这个侦听器。

  下面我们来看一个实例:



 
import java.awt.AWTEvent; 
import java.awt.Frame; 
import java.awt.Toolkit; 
import java.awt.Window; 
import java.awt.event.AWTEventListener; 
import java.awt.event.WindowEvent; 

import java.util.ArrayList; 
import java.lang.ref.WeakReference; 
public class MyAWTEventListener implements AWTEventListener{ 
  private  static MyAWTEventListener s_singleton = null;//保证该类只被初始化一次 
  public static MyAWTEventListener getInstance(){ 
    if(s_singleton==null){ 
     s_singleton=new MyAWTEventListener(); 
    } 
    return s_singleton; 
  } 
  private MyAWTEventListener(){ 
    //注意下面这行代码,如果没有这行代码,将无法接收到系统分发的事件 
    // 下面代码在注册时,只请求了接收WINDOW_EVENT_MASK事件 
   //但实际上,你可以接收其他AWTEvent中定义的事件类型 
Toolkit.getDefaultToolkit().addAWTEventListener(this, 
        AWTEvent.COMPONENT_EVENT_MASK 
); 
  } 
  /* 
     这就是接口方法的实现 
*/ 
public void eventDispatched(final AWTEvent theEvent) { 
        processEvent(theEvent); 
  } 
  private static void processEvent(final AWTEvent theEvent) { 
        System.out.println(theEvent.getSource() ) ;//打印事件源 
    switch (theEvent.getID()) { 
        case WindowEvent.WINDOW_OPENED: 
          //System.out.println(((Frame)theEvent.getSource()).getTitle() ) ; 
        case WindowEvent.WINDOW_ACTIVATED: 
        case WindowEvent.WINDOW_DEACTIVATED: 
        case WindowEvent.WINDOW_CLOSING: 
        default: break; 
        } 
    } 
} 

上一页  [1] [2] [3] [4] [5] [6] 下一页

【责编:Youping】
中国IT教育热线咨询
相关文章
框架:J2EE WEB应用架构分析…
Java SE 6.0实现高质量桌面集成开发…
浅谈Java中利用JCOM实现仿Excel编程
基于Java的界面布局DSL的设计与实现
Java开发中的事件驱动模型实例详解
Java中消除实现继承和面向接口编程
基于Delphi的异常处理技术探究
解析VB的事件驱动编程
实现Java平台的三种方式
JAVA中对象创建和初始化过程
推荐文章

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
最新更新 推荐文章
·框架:J2EE WEB应用架构分析…03-13
·几种VC++数据库开发技术的相对比…03-13
·利用C#实现标注式消息提示窗口03-13
·用C#创建COM对象03-13
·Visual C#多线程参数传递浅析…03-13
·Visual C#多线程参数传递浅析…03-13
·基于HOOK和MMF的Win密码渗透技术11-15
·Visual C++设计超强仿QQ自动伸缩…11-15
·Java SE 6.0实现高质量桌面集成开…11-15
·史玉柱东山再起幕后高人11-15
·用C#创建COM对象09-06
·IT管理十大失误及其对策08-30
·VC中利用MFC设计绘图程序初步08-23
·JAVA中对象创建和初始化过程08-23
·C语言中的位域的使用08-09
·浅谈Java桌面应用程序开发08-09
·C#的前途如何?08-02
·几种VC++数据库开发技术的相对比较07-12
·用Visual C#实现网络封包监视…07-12
·VB.NET中的TextBox控件详解07-12
·VB.NET实现PC与掌上电脑PPC的双向通信07-05