WEB开发网
开发学院网页设计JavaScript 借助传统方法使用高级 GWT 控件 阅读

借助传统方法使用高级 GWT 控件

 2010-03-09 00:00:00 来源:WEB开发网   
核心提示: 处理事件在 JavaScript 中定义的事件处理程序可与用 Java 代码实现的方法相关联,清单 4 展示了网格控件的 onRowClicked 事件是如何调用 onRowSelect Java 函数的:清单 4. 从 JavaScript 调用 Java 函数publicvoidonRowS

处理事件

在 JavaScript 中定义的事件处理程序可与用 Java 代码实现的方法相关联。清单 4 展示了网格控件的 onRowClicked 事件是如何调用 onRowSelect Java 函数的:

清单 4. 从 JavaScript 调用 Java 函数

public void onRowSelect(String index){ 
 GWT.log("Row #" + index + "selected", null); 
} 
 
native JavaScriptObject init(JavaScriptObject myColumns, JavaScriptObject myData)/*-{ 
 var widget = this; 
  
 try{ 
   ... 
   // set click action handler 
   $wnd.mygrid.onRowClicked = function(event, index){ 
 
widget.@com.mycompany.project.client.GwtGrid::onRowSelect(Ljava/lang/String;)(index); 
   }; 
 
   ... 
 } 
 catch(e){ 
 $wnd.alert(e.description); 
 } 
}-*/; 

您必须使用如下表示法在 JavaScript 中引用 Java 方法: instance-expr.@class-name::method-name(param-signature)(arguments)

instance-expr
在调用实例方法时必须使用,在调用静态方法时必须去掉。

class-name 是类的完全限定名,方法在此类(或其子类)中声明。

param-signature 是这里指定的内部 Java 方法签名,但无此方法返回类型的尾随签名(因为不需要选择重载)。

arguments 是实际要传递给被调方法的参数列表。

使用 JavaScript 控件 API

如 清单 2 所示,实现 Java 类的 init 方法返回 JavaScriptObject,它代表一个网格实例。您可以将其作为一个类属性加以存储并随后在代码中引用,以调用 JavaScript 控件 API 方法。清单 5 展示了 Delete 按钮单击事件在 Java 代码中是如何处理的:

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

Tags:借助 传统 方法

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接