`
夏莹_合肥
  • 浏览: 179378 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

JSNI在GWT中调用JavaScript

    博客分类:
  • GWT
阅读更多

以下是一个示例:

	public native void test(String panelId) /*-{
		var jg = new $wnd.jsGraphics(panelId);
		jg.setColor('#00FF00');
		jg.drawLine(10, 10, 100, 10);
		jg.paint();
	}-*/;

 

在这里强调一点$wnd 。因为GWT编译的js是在iframe中运行,所以你在js文件中自定义的类要new的时候就会报一个JavascriptException TypeError的错误,告诉你找不到这个自定义的类。所以我们必须要加上$wnd。

 

GWT支持将js的对象作为java对象保存下来,并再次用native方法传递回给js使用 ,请看下面的示例代码:

public class GWTCanvas {

	private Object jsGraphics;
	
	public GWTCanvas(String panelId) {
		this.jsGraphics = this.createJsGraphics(panelId);
	}
	
	public void drawLine(int x1, int y1, int x2, int y2) {
		drawLine(jsGraphics, x1, y1, x2, y2);
	}
	
	private native void drawLine(Object jsGraphics, int x1, int y1, int x2, int y2) /*-{
		jsGraphics.drawLine(x1, y1, x2, y2);
	}-*/;
	
	private native Object createJsGraphics(String panelId) /*-{
		return new $wnd.jsGraphics(panelId);
	}-*/;
}

 jsGraphics此java对象保存了js对象。这种方式为GWT和js进行交互以及用GWT封装以后的js类、方法提供了很好的途径。

 

具体的用GWT封装javascript实现绘图的例子可以参考我的这篇博文http://xiaying4415139-163-com.iteye.com/admin/blogs/444213

分享到:
评论

相关推荐

    GWT-JSNI.pdf

    GWT-JSNI.pdf GWT-JSNI.pdfGWT-JSNI.pdf

    关于 JSNI 调用 Java 方法时的 Type Signatures 说明

    关于 JSNI 调用 Java 方法时的 Type Signatures 说明.

    GWT揭秘(书签整理版)

    5. 在GWT中使用XML 6. GWT控件详解 7. 使用GWT控件 8. GWT-RPC 9. Ext GWT 10. (实战)俄罗斯方块游戏 11. (实战)费用申请审批流程 12. GWT与Flex整合 13. 图片缓存 CSS Sprite 14. 本地化 15. 其他高级功能

    GWT(Google Web Toolkit)

    GWT(Google Web Toolkit) 是 Google 最近推出的一个开发 Ajax 应用的框架,它支持用 Java 开发和调试 Ajax 应用,本文... 如果你觉得GWT提供的API不能满足需求,你可以利用JSNI将Javascript语句直接嵌入至Java代码中。

    gwt-jsni:用于 GWT 项目的 JSNI 实用程序

    gwt-jsni 用于 GWT 项目的 JSNI 实用程序。 用法 将依赖项添加到您的 Maven POM: < groupId>com.bytebybyte.gwt</ groupId> < artifactId>jsni < version>1.0.0 < scope>provided 和你的 .gwt.xml 文件: ...

    GWT_2BEXT_2BSTRUTS2完整实例

    1. **JSNI集成**:开发者可以通过JSNI在GWT中直接引用EXT JS的JavaScript代码,创建EXT JS组件并集成到GWT应用中。 2. **交互集成**:GWT和EXT JS可以通过共享数据和事件来协同工作,例如,GWT应用可以触发EXT JS的...

    Java和JavaScript库进行交互

    8. **JavaScript Native Interface (JSNI)**:在GWT项目中,JSNI提供了一种直接在JavaScript和Java之间编写互操作代码的方法,允许在Java类中直接嵌入JavaScript代码,并调用JavaScript函数。 文件"ImangazalievM-...

    GWT ajax开发(Eclipse Ajax)基础学习

    - **可扩展性**:如果GWT的API不足以满足需求,开发者可以使用JSNI(Java to JavaScript Native Interface)直接嵌入JavaScript代码。 2. **用GWT进行UI开发** - **UI组件和面板**:GWT提供多种UI组件,包括按钮...

    gwt-test-json-speed-jsni

    gwt-test-json-speed-jsniJSON编码器的测试速度选定的框架[AutoBeans]( ) [RestyGWT]( ) [JSNI叠加层]( )JSON树结构单父节点,很少的属性,以及单个的,较大的子列表,每个子节点都有很少的属性。初步结果(在...

    cometd4gwt:由 GWT 完成现有的 CometD 项目

    使用 GWT 的 JSNI 来包装现有 CometD 项目的 JavaScript? 客户端并利用 GWT 现有的序列化框架将对象(实现 IsSerializable?)从服务器传输到客户端。 源代码包括一个示例项目以及 Google Eclipse 插件的 Eclipse ...

    some-gwt-module:通过一些基本示例,讨论如何帮助更新GWT模块以供将来使用

    具体来说,JSNI,Generators和JavaScriptObject在GWT 3中将不起作用; 我们必须改为使用JsInterop和Java注释处理器(或其他代码生成器/构建工具)。 通过现在进行此移植,我们可以改进和更新这些模块而不会冒着向后...

    Ajax详解.rar

    Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。本系列的作者是一位 ...1.7 用 JSNI 调用本机 JavaScript 181 1.8 为什么使用 GWT? 183

    gwt-spring-jpa-jta-jms-comet-hibernate

    目的为 GWT、Spring、JMS、Comet、JTA 提供一个集成的启动项目,由 Hibernate 和 Derby ...技术MavenHibernateJPA 注释德比GWT GWT JavaScript 对象覆盖GWT JavaScript 本机接口 (JSNI) JMS/ActiveMQ 彗星春天必创 JTA

    gwt-maps3:Google Maps API v3 的 GWT 绑定

    这是从 Google Code 关闭中保存的一个非常古老的项目。 它位于 这是 Google Maps API v3 的一组 GWT 绑定草案。 什么今天有效:地图、InfoWindows(可以包括小部件)、标记、多边形、事件(针对上述内容) 尚未...

    gwt-cell-widgets

    gwt-cell-widgets-进行中[![构建状态] [travis-img]] [travis] 该存储库试图通过删除旧的浏览器支持,GWT.create()和JSNI,使GWT SDK 2.x单元,视图和单元视图API与GWT 3兼容。 提交可以随时重写。 [travis]: ...

    GwtBingMaps:Bing Maps AJAX 控件的 GWT 包装器,版本 7.0

    GwtBingMaps 是一组 JSNI 覆盖,用于将与 GWT 一起使用。 快速开始 下载 ,将其添加到您的 /war/WEB_INF/lib 文件夹,并将其添加到您的构建路径中。 或者,如果您使用的是 Maven: 使用以下命令将此存储库克隆到...

    如何为ASP.NET AJAX创建HTML编辑器

    在C#代码中,你可以通过JavaScript Interop(JSNI)调用这些库的方法,实现编辑器的初始化、内容获取和设置等功能。 AJAX技术用于实现编辑器的异步交互。你可以利用ASP.NET AJAX的ScriptManager和UpdatePanel,使得...

    藏经阁-一站式服务型开发生态.pdf

    该社区提供了丰富的开发资源,包括开发者网站、JavaScript、CAF、Native调用服务、云测平台等。这些资源可以帮助开发者快速开发和部署应用程序。 YunOS组件库 YunOS组件库是藏经阁的一站式服务型开发生态的核心...

    藏经阁-一站式服务型开发生态——YunOS开发生态介绍.pdf

    YunOS 开发生态提供了丰富的组件库,包括 JavaScript、CAF、Native 等多种组件。这些组件可以帮助开发者快速构建高质量的应用程序,並且提供了更好的用户体验。 IDE 插件集 YunOS 开发生态提供了IDE 插件集,包括 ...

    liferay帮助文档

    这个是环境搭建的说明,希望对你们有帮助

Global site tag (gtag.js) - Google Analytics