java - GWT UiBinder - 将新对象分配给 UiField 引用

标签 java gwt uibinder

我最近开始在我的一个应用程序中使用 GWT。我对UiBinder的使用有疑问。如果我在类中声明了 @UiField 属性(在 .ui.xml 中也类似),我可以在创建该类型的新对象后将其分配给相同的引用吗?构造函数?

例如,如果我的 ui.xml 文件有一个 DockLayoutPanel,其中心有一个 PlotWidget。

public class PlotWidget extends Composite {

    @UiField (provided = true)
    SimplePlot plot;

    public Constructor() {
        plot = new SimplePlot(someArgument1, someArgument2);
    }

    // some method
    public doSomething() {
        // Is this valid?
        plot = new SimplePlot(someArgument3, someArgument4);    
    }
}

绘图是否仍附加到 DockLayoutPanel?如果没有,我将如何实现需要创建如上所述的新对象的功能?

任何指示将不胜感激。

最佳答案

在这种情况下,我使用容器来更改小部件。

public class PlotWidget {

    @UiField
    SimplePanel plotContainer;

    public Constructor() {
        plotContainer.setWidget(new SimplePlot(someArgument1, someArgument2));
    }

    public doSomething() {
        plotContainer.setWidget(new SimplePlot(someArgument3, someArgument4));    
    }
}

但是如果绘图字段上有事件处理程序(由 @UiHandler annptation 提供),它将无法正常工作。

关于java - GWT UiBinder - 将新对象分配给 UiField 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11610882/

相关文章:

css - 我如何使用 GWT 复制 GMail 当前悬停的行标记?

gwt - *.ui.xml 中的自定义复合小部件

gwt - 动态添加多个 GET 单选按钮组

GWT UiBinder 的 Eclipse 自动完成(+ UiBinder 文档)

gwt - Google Apps 脚本 - 在仅以 View 形式共享电子表格时发出运行脚本问题

java - org.hibernate.ObjectNotFoundException :No row with the given identifier exists

java - 想要在java中为每个循环解决这个简单的问题

java - mongodriver 按升序排列

java - php shell_exec ("java -version")返回 null

css - 如何使 ScrollPanel 仅在其内部小部件高于它时可见,而当其内部小部件低于它时不可见?