我使用UiBinder在sinple GWT应用程序中定义我的页面元素。
“Login.ui.xml”定义如下。
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:gwt='urn:import:com.google.gwt.user.client.ui'>
<gwt:HTMLPanel>
<div align="center">
<gwt:VerticalPanel ui:field="myMeasuresBoxesPanel">
</gwt:VerticalPanel>
</div>
</gwt:HTMLPanel>
Login类定义为:
public class Login extends Composite {
private static LoginUiBinder uiBinder = GWT.create(LoginUiBinder.class);
/*
* @UiTemplate is not mandatory but allows multiple XML templates to be used
* for the same widget. Default file loaded will be <class-name>.ui.xml
*/
@UiTemplate("Login.ui.xml")
interface LoginUiBinder extends UiBinder<Widget, Login> {
}
@UiField
VerticalPanel myMeasuresBoxesPanel;
public Login() {
this.myMeasuresBoxesPanel.getElement().setId("myMeasuresBoxesPanel");
for(int i = 0; i < 10; i ++) {
TextBox newMeasureTextBox = new TextBox();
newMeasureTextBox.setText(String.valueOf(i));
this.myMeasuresBoxesPanel.add(newMeasureTextBox);
}
initWidget(uiBinder.createAndBindUi(this));
}
}
我希望使用10个TextBox小部件列表初始化myMeasuresBoxesPanel verticalPanel,以便用户输入信息。
代码编译得很好,但网页没有显示文本框,只是从verticalPanel呈现的空表。
答案 0 :(得分:0)
我找到了答案。在将所有TextBox小部件添加到面板之前调用m_nValue
解决了这个问题。