`
yonglin4605
  • 浏览: 183565 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

GWT中的事件处理机制

    博客分类:
  • GWT
阅读更多
    浏览器里面的事件处理机制包括2种,IE浏览器到事件处理机制叫冒泡(Event Bubbling) IE以外的其他浏览器到事件处理机制叫事件捕获(Event Capturing)
    W3C定义了事件处理标准,即浏览器既支持事件冒泡,又支持事件捕获,可以通过addEventListener()的参数设置使用哪种事件处理机制。但是IE只支持冒泡,而其他浏览器支持W3C标准。GWT对2中事件处理机制都提供了良好的支持。
    在每个Widget/Panel中,需要通过sinkEvents()方法为它引入适当的事件,又由于所有的Widget都默认实现了EventListener监听接口,这样Widget就具有了监听这种事件的能力。当Widget推荐哦那个个sinkEvents()方法引入某类事件后,还需要实现eventListener的onBrowserEvent()方法,用这个方法操纵这个事件。
    当Widget添加到浏览器页面时,他的onAttach()方法被触发,onAttach()方法的作用就是将它注册为DOM层的事件监听器,此时Widget才真正开始监听事件。
    当一个事件在一个Widget上触发时,GWT会检测此Widget是否有这个事件的监听器。如果有,GWT将调用DOM类中的$wnd_dispatchEvent()方法将这个事件,这个元素,和EventListener监听器的一个引用传入,之后通过调用EventListener引用中的onBrowserEvent()方法来处理这个事件

创建VPanel
public VPanel(){
  super();
  //引入鼠标进入和离开的事件
  this.sinkEvents(Event.ONMOUSEOVER | Event.ONMOUSEOUT);
}
//当监听到事件时,会调用此方法
public void onBrowserEvent(Event event){
  super.onBrowserEvent(event);
  DOM.eventCancelBubble(event,true);//取消冒泡
  int type=DOM.eventGetType(event);
  switch(type){
    case Event.ONMOUSEOVER:{
      setStyleName("VPanel");
      break;
    }
    case Event.ONMOUSEOUT:{
      removeStyleName("VPanel");
      break;
    }
  }
}

分享到:
评论

相关推荐

    使用 Cypal Studio for GWT 简化 Ajax 开发

    一个远程过程调用机制,允许在客户机与服务器之间进行通信,其中由 GWT 处理所有的管道和数据转换。一个完全集成的浏览器仿真器,使 GWT 在开发过程中独立运行,包括能够在 GWT 调试会话期间在编辑器中设定断点等...

    java开源包1

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包11

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包2

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包3

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包6

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包5

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包10

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包4

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包8

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包7

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包9

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包101

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    Java资源包01

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    云应用开发 ——Google App Engine & Google Web Toolkit入门指南

    10.1.5事件处理 10.1.6实现客户端功能 10.1.7添加应用样式 10.1.8国际化 10.1.9服务器交互 10.1.10让App Engine托管应用 10.2 中级例子——个人网站 10.2.1样子与功能 10.2.2创建项目 10.2.3定义数据结构 ...

    JAVA上百实例源码以及开源项目源代码

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

    JAVA上百实例源码以及开源项目

    原理是初始化颜色选择按钮,然后为颜色选择按钮增加事件处理事件,最后实例化颜色选择器。 Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件...

Global site tag (gtag.js) - Google Analytics