0

如何从 Javascript 创建小部件。例如,我需要创建一个简单的按钮或表格。我有一些绘制表格的第三方 javascript。现在,如果我想使用这些 javascript 创建 GWT 小部件,我应该先做什么?GWText、SmartGWT 等其他框架如何使用自定义小部件?他们是从头开始还是重用 GWT 小部件功能?就像如果我想以自己的风格创建一个表,我是否需要继承 GWT 表?谁能给出一个示例或示例代码如何从 javascript 创建一个小部件?如果我的问题是错误的,请原谅我。

例子:

Mytable 表 = 新的 Mytable(2,3)。然后它应该用 2 列和 3 行绘制我自己的表

4

2 回答 2

3

你在这里问了很多问题。在您的情况下,您应该创建尽可能多的问题,以便您在原始帖子中有问号。

关于您的第一个问题,请查看JSNI

编辑:所以 okrasz 给了你一些参考资料。从我的角度来看,我将尝试使用 JSNI 帮助您的示例(因为您在询问将现有 js 绑定到 GWT)。

假设您已MyTable定义为

<script type="text/javascript">
    MyTable = function(a,b){
        this.a = a;
        this.b = b;
    };
</script>

并且你的 js 文件被调用mytable.js

现在,我们需要它成为一个组件。在 GWT 库项目中的 .java 文件中,创建一个像这样的类:

public class MyTable extends JavaScriptObject {
    protected MyTable(){}
    public static native MyTable create(double a, double b) /*-{
        return new MyTable(a,b);
    }-*/;
    public final native double getA() /*-{
        return this.a;
    }-*/;

    public final native double getB() /*-{
        return this.b;
    }-*/;
}

将您的原始 js 文件添加到资源中,并将一个script节点添加到您的gwt.xml模块中,如下所示:

<module>
  <inherits name="com.google.gwt.core.Core"/>
  <script src="path/to/mytable.js"/>
  <source path="client"/>
  <public path="public"/>
</module>

差不多就是这样。我可能忘记了一些东西,但你可以参考任何你需要做同样事情的 oss 项目。例如,看一下swfupload-gwt项目源代码。

于 2011-07-15T11:25:57.513 回答
1

这是如何创建自定义小部件的文档。不幸的是,他们大多谈论从现有的小部件中创建复合小部件。但是对于从头开始创建它们,他们建议在创建 Button 时用 Java 编写 - 这里是Button 源代码供参考。对于 JS 中的小部件,他们建议使用 TextBox 的源代码

这里还有一篇关于创建小部件的文章:http: //davidmaddison.blogspot.com/2009/01/creating-gwt-component.html

于 2011-07-15T12:53:59.633 回答