如何将TextBox小部件列表添加到使用UiBinder(GWT)声明的Panel小部件?

时间:2016-06-02 01:00:07

标签: java gwt uibinder

我使用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呈现的空表。

1 个答案:

答案 0 :(得分:0)

我找到了答案。在将所有TextBox小部件添加到面板之前调用m_nValue解决了这个问题。