Gwt 如何强迫widget重新绘制自己
我刚刚开始使用gwt,我正在尝试解决以下任务: 我有两门课,一年一个月,一年一个月。在我的实现课程中,我有Gwt 如何强迫widget重新绘制自己,gwt,Gwt,我刚刚开始使用gwt,我正在尝试解决以下任务: 我有两门课,一年一个月,一年一个月。在我的实现课程中,我有 UiField(provided = true) Composite composite; Month month; Year year; ... //Constructor @Inject MyClassImpl(){ month = new Month(); year = new Year(); composite = month; } updateComposite
UiField(provided = true)
Composite composite;
Month month;
Year year;
...
//Constructor
@Inject
MyClassImpl(){
month = new Month();
year = new Year();
composite = month;
}
updateComposite(){
composite = year;
logger.fine("composite = " + composite);
}
我的问题是,当我调用updateComposite()方法时,我在控制台上看到它被更新了,但在屏幕上没有重新绘制。看起来我的问题的答案很简单,但我没能找到。我查看了这里和其他一些地方。如果类中的字段(如果是JS对象,则将转换为属性)没有将组件交换到DOM中,则更改值
您需要在DOM中用新值代替旧值。不过,实现这一点的方法在很大程度上取决于ui.xml。一种可能是在ui.xml中使用SimplePanel,并使用setWidget设置要显示的适当小部件。如果类中的字段(如果是JS对象,将转换为属性)没有将组件交换到DOM中,则更改值
您需要在DOM中用新值代替旧值。不过,实现这一点的方法在很大程度上取决于ui.xml。一种可能是在ui.xml中使用SimplePanel,并使用setWidget设置要显示的适当小部件。谢谢,我查看了setWidget源代码,发现将小部件附加到DOM树是我忘记做的事情。谢谢,我浏览了setWidget源代码,发现将小部件附加到DOM树是我忘记做的事情。