浏览器里面的事件处理机制包括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的核心概念,如UI设计(Widget系统)、事件处理、数据模型和服务器通信(RPC机制)、本地存储、国际化等。...
4. **事件处理**:GWT中的事件模型基于DOM事件,你可以为Widget绑定事件监听器,处理用户交互。 5. **CSS样式**:GWT支持内联CSS和外部CSS样式表,可以通过Java代码动态修改样式,实现富客户端界面的定制。 6. **...
5. **事件处理**:GWT中的事件处理机制允许用户与界面交互。你可以通过添加事件监听器来响应用户的点击、键盘输入等操作。 6. **RPC通信**:GWT的Remote Procedure Call (RPC)机制使得客户端和服务器之间能进行数据...
通过以上介绍,我们可以看出GWT中的XMLHttpRequest和RPC机制为开发者提供了强大的异步通信能力。无论你是需要简单的HTTP请求还是复杂的数据交换,GWT都能提供相应的解决方案。在实际项目中,根据需求选择合适的通信...
在GWT中,通信机制主要涉及Client-Server交互,即客户端与服务器端的数据交换。这种交互通常通过两种主要的方式实现: 1. **RequestBuilder**: 这是GWT中最基础的通信方式,用于发送HTTP请求。你可以创建一个`...
- 支持事件处理机制,如点击事件、键盘事件等。 4. **远程服务调用(RPC)**: - GWT支持通过远程过程调用(Remote Procedure Call, RPC)机制与服务器端进行通信。 - 开发者可以通过定义服务接口并实现相应的服务端...
- SmartGWT支持事件监听和处理,使得交互操作更加灵活。 - 利用DS(DataSource)机制,可以方便地处理服务器端的数据请求和响应。 6. **主题和皮肤** - SmartGWT提供多种预定义的主题,允许自定义外观以匹配不同...
3. **APIs**:GWT提供了大量JavaScript库,包括UI组件、事件处理、国际化、数据绑定、异步RPC通信等,这些APIs都是用Java封装的,方便开发者使用。 4. **Widget库**:GWT包含一个丰富的Widget库,涵盖了从按钮、...
3. **事件处理**:GWT支持事件驱动编程,允许你为UI组件添加事件监听器,处理用户的交互行为。例如,点击按钮触发一个函数,提交表单等。 4. **数据绑定**:GWT的Data Binding机制使你可以方便地将UI组件的状态与...
在GWT中实现文件上传,首先需要理解的是GWT的事件处理机制,因为文件上传通常涉及到用户交互,比如点击按钮选择文件。这需要我们监听FileUpload组件的onChange事件,当用户选取文件后触发相应的处理函数。在这个处理...
5. **异步通信**:GWT的RPC机制使得客户端和服务器之间的通信变得简单,DEMO会展示如何使用ServiceDefTarget和AsyncCallback进行异步请求。 6. **性能优化**:SmartGWT通过延迟加载、分块加载等策略提高了组件加载...
GWT提供了丰富的事件处理机制,可以通过`EventBus`或直接在控件上添加事件监听器来实现。 7. **状态管理**:为了保持分页状态(当前页码和每页数量),我们可以使用`PlaceManager`和`PlaceHistoryHandler`来管理URL...
标题与描述均提到了"GWT-Events.pdf",这表明文档主要聚焦于Google Web Toolkit(GWT)中的事件处理机制。GWT是一个开源框架,允许开发者使用Java编写复杂的客户端应用程序,然后将其编译成高性能的浏览器JavaScript...
3. **事件处理**:GWT通过事件监听机制处理用户交互。例如,当用户点击登录按钮时,会触发一个事件,该事件会被对应的事件处理器捕获,执行登录逻辑。 4. **验证逻辑**:为了确保有效的登录,通常会有对输入数据的...
这个解决方案的核心在于理解SmartGWT的事件处理机制和组件内部的工作原理,以及如何通过JavaScript Native Interface(JNI)来直接操作底层的JavaScript对象。这种方法虽然能够解决问题,但可能会影响到SmartGWT的...
在GWT中,API包含了各种控件、服务、事件处理和数据绑定等模块,使得开发者可以便捷地构建Web应用。 **GWT API 帮助文档** 是一份详细的资源,用于指导开发者理解和使用GWT框架的各种功能。这份文档通常包含以下...
GWT提供了丰富的事件处理机制,如按钮点击、鼠标移动等,你可以通过`addClickListener`等方法来绑定事件处理器。 **4. 数据绑定与Model-View-Presenter模式** GWT支持数据绑定,使得UI组件的状态能自动与后台模型...
- **事件处理**:GWT的事件处理机制允许开发者为UI组件绑定事件监听器,例如点击按钮触发计算操作。 - **业务逻辑**:计算器的核心是计算逻辑,这部分通常包含在Java类中,处理输入数据、执行运算并返回结果。 - ...