`
yonglin4605
  • 浏览: 188508 次
  • 性别: 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;
    }
  }
}

分享到:
评论

相关推荐

    GWT入门 GWT中文教程

    “GWT入门”和“GWT中文教程”显然是针对初学者的,它们可能从最基础的GWT安装、项目配置开始,逐步讲解GWT的核心概念,如UI设计(Widget系统)、事件处理、数据模型和服务器通信(RPC机制)、本地存储、国际化等。...

    GWT中文教程(入门进阶)

    4. **事件处理**:GWT中的事件模型基于DOM事件,你可以为Widget绑定事件监听器,处理用户交互。 5. **CSS样式**:GWT支持内联CSS和外部CSS样式表,可以通过Java代码动态修改样式,实现富客户端界面的定制。 6. **...

    gwt 练习 gwt学习

    5. **事件处理**:GWT中的事件处理机制允许用户与界面交互。你可以通过添加事件监听器来响应用户的点击、键盘输入等操作。 6. **RPC通信**:GWT的Remote Procedure Call (RPC)机制使得客户端和服务器之间能进行数据...

    GWT中的xmlHttpRequest

    通过以上介绍,我们可以看出GWT中的XMLHttpRequest和RPC机制为开发者提供了强大的异步通信能力。无论你是需要简单的HTTP请求还是复杂的数据交换,GWT都能提供相应的解决方案。在实际项目中,根据需求选择合适的通信...

    GWT通信机制初探

    在GWT中,通信机制主要涉及Client-Server交互,即客户端与服务器端的数据交换。这种交互通常通过两种主要的方式实现: 1. **RequestBuilder**: 这是GWT中最基础的通信方式,用于发送HTTP请求。你可以创建一个`...

    GWT快速开发(GWT) 是一个Java软件开发框架用于开发类似于Google Maps和Gmail的AJAX应用程序。GWT的设计参考Java AWT包设计,类命名规则、接口设计、事件监听等。你可以用Java编程语言开发你的界面,然后用GWT编译器将Java类转换成适合浏览器执行的...

    - 支持事件处理机制,如点击事件、键盘事件等。 4. **远程服务调用(RPC)**: - GWT支持通过远程过程调用(Remote Procedure Call, RPC)机制与服务器端进行通信。 - 开发者可以通过定义服务接口并实现相应的服务端...

    smartgwt-1.3

    - SmartGWT支持事件监听和处理,使得交互操作更加灵活。 - 利用DS(DataSource)机制,可以方便地处理服务器端的数据请求和响应。 6. **主题和皮肤** - SmartGWT提供多种预定义的主题,允许自定义外观以匹配不同...

    GWT开发环境JAVA

    3. **APIs**:GWT提供了大量JavaScript库,包括UI组件、事件处理、国际化、数据绑定、异步RPC通信等,这些APIs都是用Java封装的,方便开发者使用。 4. **Widget库**:GWT包含一个丰富的Widget库,涵盖了从按钮、...

    gwt实例,基于gwt-windows-1.5.2

    3. **事件处理**:GWT支持事件驱动编程,允许你为UI组件添加事件监听器,处理用户的交互行为。例如,点击按钮触发一个函数,提交表单等。 4. **数据绑定**:GWT的Data Binding机制使你可以方便地将UI组件的状态与...

    GWT实现文件上传文件上传

    在GWT中实现文件上传,首先需要理解的是GWT的事件处理机制,因为文件上传通常涉及到用户交互,比如点击按钮选择文件。这需要我们监听FileUpload组件的onChange事件,当用户选取文件后触发相应的处理函数。在这个处理...

    smartgwt最新版本GWT的DEMO

    5. **异步通信**:GWT的RPC机制使得客户端和服务器之间的通信变得简单,DEMO会展示如何使用ServiceDefTarget和AsyncCallback进行异步请求。 6. **性能优化**:SmartGWT通过延迟加载、分块加载等策略提高了组件加载...

    GWT例子中的分页研究.

    GWT提供了丰富的事件处理机制,可以通过`EventBus`或直接在控件上添加事件监听器来实现。 7. **状态管理**:为了保持分页状态(当前页码和每页数量),我们可以使用`PlaceManager`和`PlaceHistoryHandler`来管理URL...

    GWT-Events.pdf

    标题与描述均提到了"GWT-Events.pdf",这表明文档主要聚焦于Google Web Toolkit(GWT)中的事件处理机制。GWT是一个开源框架,允许开发者使用Java编写复杂的客户端应用程序,然后将其编译成高性能的浏览器JavaScript...

    GwtDemo helloworld

    3. **事件处理**:GWT通过事件监听机制处理用户交互。例如,当用户点击登录按钮时,会触发一个事件,该事件会被对应的事件处理器捕获,执行登录逻辑。 4. **验证逻辑**:为了确保有效的登录,通常会有对输入数据的...

    smartGwt学习笔记

    这个解决方案的核心在于理解SmartGWT的事件处理机制和组件内部的工作原理,以及如何通过JavaScript Native Interface(JNI)来直接操作底层的JavaScript对象。这种方法虽然能够解决问题,但可能会影响到SmartGWT的...

    GWT-API 帮助文档

    在GWT中,API包含了各种控件、服务、事件处理和数据绑定等模块,使得开发者可以便捷地构建Web应用。 **GWT API 帮助文档** 是一份详细的资源,用于指导开发者理解和使用GWT框架的各种功能。这份文档通常包含以下...

    GWT入门和进阶

    GWT提供了丰富的事件处理机制,如按钮点击、鼠标移动等,你可以通过`addClickListener`等方法来绑定事件处理器。 **4. 数据绑定与Model-View-Presenter模式** GWT支持数据绑定,使得UI组件的状态能自动与后台模型...

    gwt 实现的一个简单计算器

    - **事件处理**:GWT的事件处理机制允许开发者为UI组件绑定事件监听器,例如点击按钮触发计算操作。 - **业务逻辑**:计算器的核心是计算逻辑,这部分通常包含在Java类中,处理输入数据、执行运算并返回结果。 - ...

Global site tag (gtag.js) - Google Analytics