浏览 9201 次
锁定老帖子 主题:gwt 中的jsni
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-28
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)
创建一个java类Coner.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了
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-05-28
rico的round原理是什么?会否改变最终dom(例如在element元素外包一层元素)?
|
|
返回顶楼 | |
发表时间:2007-05-28
hax 写道 rico的round原理是什么?会否改变最终dom(例如在element元素外包一层元素)? 不好意思,我调用的是一个开源的js库只看了它的一些接口,至于里面怎么实现我没有深入的去看
|
|
返回顶楼 | |
发表时间:2007-05-28
可以返回ArrayList 类型 的 我一般都是用ArrayList
作为返回值得 GWT对ArrayList 支持的还不错 |
|
返回顶楼 | |
发表时间:2007-05-29
<script black type="text/Java</span><span style=" color:>
</script> <script black type="text/Java</span><span style=" color:> </script> 这段有些乱啊,怎么解释。 |
|
返回顶楼 | |
发表时间:2007-05-29
没注意 网站过滤掉了 是这样的
<script type="text/JavaScript"src="Javascript/prototype.js"> </script> <script type="text/JavaScript"src="Javascript/rico.fx.js"> </script> |
|
返回顶楼 | |