UiField和文本框的GWT UI问题

时间:2012-10-18 02:27:16

标签: gwt

概念

当用户点击removeUser标签时,会弹出一个文本框。然后,用户输入他们想要移除的用户的用户名。然后,用户点击"输入"删除用户。

GWT问题

我正在使用一个实现类型为com.google.gwt.user.client.ui.Composite.

的对象的类

其中一个字段包含@UiField标签:

@UiField
Label removeUser;

我有一个常规TextBox,当点击removeUser标签时,它会出现。

 private TextBox removeUserTextBox = new TextBox();

如果我的代码是正确的,那么当点击removeUser时会出现removeUserTextBox。

   removeUser.addClickHandler(new ClickHandler()
    {
        public void onClick(final ClickEvent event)
        {   
            removeUserTextBox.setVisible(true);
            removeUserTextBox.setText("blah blah")
            removeUserTextBox.addStyleName(StaticResourceBundle.
INSTANCE.coreCss().removeUserTextBox());
            }
        });

但是,单击removeUser标签时,removeUserTextBox不会显示。

我不会想(或知道)它是否是一个CSS问题,因为removeUserTextBox的CSS类似于removeUser的CSS,它正确显示。

请告知。

谢谢, 凯文

2 个答案:

答案 0 :(得分:1)

为什么要在处理程序的文本框中添加样式?只需单击setVisible(true),然后在用户确认删除时设置setVisible(false)。

答案 1 :(得分:1)

您的文本框似乎没有附加到DOM。您可以执行以下任一操作。

1)在标记(uiBinder)中包含一个textBox,并用@UiField注释注入它。

2)将使用构造函数创建的textBox添加到RootPanel或已附加到DOM的其他容器中。

3)将textBox包装到弹出式面板中,并相对于标签显示它。我最喜欢这个变种,因为没有必要用css定位。