我最近开始在我的一个应用程序中使用 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/