【问题标题】:How to add a list of TextBox widgets to a Panel widget declared using UiBinder (GWT)?如何将 TextBox 小部件列表添加到使用 UiBinder (GWT) 声明的 Panel 小部件?
【发布时间】:2016-06-02 01:00:07
【问题描述】:

我使用 UiBinder 在一个单一的 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));
    }
}

我希望 myMeasuresBoxesPanel verticalPanel 使用 10 个 TextBox 小部件的列表进行初始化,供用户输入信息。

代码编译得很好,但是网页没有显示文本框,而只是一个从verticalPanel呈现的空表。

【问题讨论】:

    标签: java gwt uibinder


    【解决方案1】:

    我找到了答案。在将所有 TextBox 小部件添加到面板之前调用 initWidget(uiBinder.createAndBindUi(this)); 解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 2011-06-12
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      相关资源
      最近更新 更多