Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有UiField和文本框的GWT UI问题_Gwt - Fatal编程技术网

带有UiField和文本框的GWT UI问题

带有UiField和文本框的GWT UI问题,gwt,Gwt,概念 当用户单击removeUser标签时,会弹出一个文本框。然后,用户输入要删除的用户的用户名。然后,用户点击“回车”删除用户 GWT问题 我正在使用一个类来实现一个类型为com.google.gwt.user.client.ui.Composite的对象。 其中一个字段包括@UiField标签: @UiField Label removeUser; 我有一个常规的文本框,当点击removeUser标签时应该会出现 private TextBox removeUserTextBox = n

概念

当用户单击removeUser标签时,会弹出一个文本框。然后,用户输入要删除的用户的用户名。然后,用户点击“回车”删除用户

GWT问题

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

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

@UiField
Label removeUser;
我有一个常规的文本框,当点击removeUser标签时应该会出现

 private TextBox removeUserTextBox = new TextBox();
   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

 private TextBox removeUserTextBox = new TextBox();
   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相似,后者显示正确

请告知

谢谢,
Kevin

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

您的文本框似乎未连接到DOM。您可以执行以下任一操作

1) 在标记(uiBinder)中包含一个文本框,并使用@UiField注释将其插入

2) 将使用构造函数创建的文本框添加到根面板或已附加到DOM的其他容器


3) 将文本框包装到弹出面板中,并相对于标签显示它。我最喜欢这个变体,因为不需要使用css定位。

我希望文本框位于RemoveUser标签旁边,因此我使用样式来相应地放置文本框。这是错误的吗?通常在Ui:Binder中添加样式,或者在创建小部件时添加样式,而不是在单击处理程序中添加样式。如果CSS没有可见性规则,那么问题一定是将文本框附加到DOM。