`
zhaoxin
  • 浏览: 12016 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多
JSNI是将少量的Javascript代码嵌入到java中,和java中的JNI很类似。
先来看看一段代码
其中 native void helloJSNI()
/*-{
$wnd.alert("Hello, GWT JSNI!");
}-*/;
native是关键子 表明它是本地方法 JavaScript代码块写在
/*-{   }-*/中间 。GWT 提供了 $wnd$doc变量,它们分别代表窗口和文档对象。
在扩展库的时候
1)首先在xiangmu.html中添加如下代码
<script type="text/JavaScript"src="Javascript/prototype.js">
</script>
<script type="text/JavaScript"src="Javascript/rico.fx.js">
</script>
这两个。js 可以实现组件变成圆角
2
创建一个javaConer.java
3)添加一个私有方法
private native static void corner
(Element element)
/*-{
$wnd._nativeExtensions = false;
$wnd.Rico.Corner.round(element, null);
}-*/
$wnd.Rico.Corner.round(element,null); 这段代码调用了rico.fx.js中的Rico.Corner.round(element,null)方法。在这里要提醒的是得到一个Rico类的对象不可以用 new Rico(); 因为 GWT编译所产生的所产生的代码在iframe中运行,所以要用到你所包含的对象的时候要用$wnd来调用。
4)在写一个类方法来调用他
public static void corner(Widget widget)
{
corner(widget.getElement(), null);
}
5)已经OK
分享到:
评论
6 楼 zhaoxin 2007-05-29  
没注意 网站过滤掉了 是这样的
<script type="text/JavaScript"src="Javascript/prototype.js">
</script>
<script type="text/JavaScript"src="Javascript/rico.fx.js">
</script>
5 楼 sheva.wen 2007-05-29  
<script black type="text/Java</span><span style=" color:>
</script>
<script black type="text/Java</span><span style=" color:>
</script>


这段有些乱啊,怎么解释。
4 楼 zhaoxin 2007-05-28  
可以返回ArrayList 类型 的 我一般都是用ArrayList
作为返回值得
GWT对ArrayList 支持的还不错
3 楼 zhaoxin 2007-05-28  
hax 写道
rico的round原理是什么?会否改变最终dom(例如在element元素外包一层元素)?
不好意思,我调用的是一个开源的js库只看了它的一些接口,至于里面怎么实现我没有深入的去看
2 楼 zxg1127 2007-05-28  
请问一下,server包中,实现client接口的方法是不是只能返回string类型的,我在返回list类型时,提示
java.lang.RuntimeException: Checked exception thrown into JavaScript (web mode behavior may differ)
at com.google.gwt.dev.shell.ie.ModuleSpaceIE6.invokeNative(ModuleSpaceIE6.java:435)
at com.google.gwt.dev.shell.ie.ModuleSpaceIE6.invokeNativeVoid(ModuleSpaceIE6.java:320)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeVoid(JavaScriptHost.java:141)
at com.cleanmake.ui.web.client.WebUIClientService_TypeSerializer.deserialize(transient source for com.cleanmake.ui.web.client.WebUIClientService_TypeSerializer:137)
at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.deserialize(ClientSerializationStreamReader.java:94)
at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:61)
at com.cleanmake.ui.web.client.WebUIClientService_Proxy$2.onCompletionImpl(transient source for com.cleanmake.ui.web.client.WebUIClientService_Proxy:115)
at com.cleanmake.ui.web.client.WebUIClientService_Proxy$2.onCompletionAndCatch(transient source for com.cleanmake.ui.web.client.WebUIClientService_Proxy:104)
at com.cleanmake.ui.web.client.WebUIClientService_Proxy$2.onCompletion(transient source for com.cleanmake.ui.web.client.WebUIClientService_Proxy:98)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.google.gwt.dev.shell.ie.IDispatchImpl.callMethod(IDispatchImpl.java:107)
at com.google.gwt.dev.shell.ie.IDispatchProxy.invoke(IDispatchProxy.java:140)
at com.google.gwt.dev.shell.ie.IDispatchImpl.Invoke(IDispatchImpl.java:274)
at com.google.gwt.dev.shell.ie.IDispatchImpl.method6(IDispatchImpl.java:177)
at org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:117)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1925)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2966)
at com.google.gwt.dev.GWTShell.pumpEventLoop(GWTShell.java:657)
at com.google.gwt.dev.GWTShell.run(GWTShell.java:527)
at com.google.gwt.dev.GWTShell.main(GWTShell.java:303)

请问是什么原因啊
1 楼 hax 2007-05-28  
rico的round原理是什么?会否改变最终dom(例如在element元素外包一层元素)?

相关推荐

    GWT-JSNI.pdf

    - **JSNI (JavaScript Native Interface)**: GWT 提供的一种特殊机制,允许开发者在 GWT 应用程序中直接调用 JavaScript 代码或从 JavaScript 调用 Java 代码。 #### 二、调用 JavaScript 从 Java - **方法格式**:...

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

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

    GWT揭秘(书签整理版)

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

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

    在 Java Native Interface (JNI) 和 Google Web Toolkit (GWT) 中,Type Signatures 是一种特殊的表示法,用于描述 Java 类型。这种表示法在 JSNI(Java Script Native Interface)中尤为重要,因为它可以帮助开发者...

    GWT安装和使用

    在这种情况下,GWT 支持 JavaScript Native Interface (JSNI),允许开发者直接在 Java 代码中嵌入 JavaScript 代码。这种机制为开发者提供了极大的灵活性,使其能够在需要时使用原生 JavaScript 功能。 #### 二、用...

    gwt开发问题

    然而,在实际开发过程中,GWT用户会遇到各种各样的问题,其中“如何在GWT应用中实现右键菜单”是一个常见需求。 **GWT方式实现右键菜单:** GWT提供了一种较为直接的方法来实现右键菜单功能。这种方式的优点在于...

    GWT (GOOGLE WEB TOOLKIT)介绍PPT

    - **可扩展性**:GWT提供了JSNI(Java to JavaScript Native Interface),允许开发者在必要时直接编写JavaScript代码,增强了灵活性。 **4. GWT的主要组成部分** - **Java-to-JavaScript编译器**:负责将Java代码...

    gwt技术介绍

    5. 可扩展性,GWT提供了JSNI(JavaScript Native Interface)允许开发者在Java代码中嵌入JavaScript代码,提供了强大的自定义和扩展能力。 GWT的四大组成部分包括: 1. Java-to-JavaScript编译器,负责将Java代码...

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

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

    GWT(Google Web Toolkit)

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

    GWT_2BEXT_2BSTRUTS2完整实例

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

    GWT技术介绍

    1. **Host Mode(宿主模式)**:在开发过程中,可以直接在GWT提供的模拟浏览器中查看应用的效果,便于调试。 2. **Web Mode**:编译后的应用可以在真实的Web浏览器中运行。 #### 七、GWT应用开发流程 1. **创建项目*...

    GWT开发者手册_v2

    - **编译过程**:当 GWT 应用程序在主机模式下编译和运行时,如果编译过程中没有出现错误,则该应用程序将以相同的方式在 Web 浏览器中运行,提供了一种无缝过渡的方法。 - **语言兼容性**:GWT 支持 J2SE 1.4.2 或...

    GWT in Action

    在这一部分中,作者详细介绍了GWT中的各种小部件(Widget),这些小部件是构成用户界面的基础单元。通过对不同类型的小部件的学习,读者能够掌握如何构建美观且功能丰富的用户界面。本章还会涉及到如何自定义小部件...

    网页表格组件 GWT Advanced Table

    - **GWT框架**:理解GWT的工作原理,包括模块系统、编译过程和JSNI(JavaScript Native Interface)。 - **HTML和CSS**:虽然GWT会自动处理一部分布局,但理解基本的HTML和CSS可以帮助你更好地定制表格样式。 - **...

    gwt项目开发的经验集

    如果希望自定义这个菜单的行为,可以通过GWT提供的API或JavaScript Native Interface (JSNI)来实现。 #### 实现方法 - **GWT方式**:基于GWT的事件机制实现。这种方式的优点是能够确保跨浏览器的兼容性,但是可能...

Global site tag (gtag.js) - Google Analytics