`
zhaoxin
  • 浏览: 12075 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多
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. 其他高级功能

    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 ajax开发(Eclipse Ajax)基础学习

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

    网页表格组件 GWT Advanced Table

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

Global site tag (gtag.js) - Google Analytics