GWT - HTML小部件 - setEnabled

时间:2013-01-29 19:12:29

标签: gwt

有没有办法让com.google.gwt.user.client.ui.HTML小部件启用或不启用?我试过但似乎没有setEnabled(布尔)方法:S分享您的经验

由于

5 个答案:

答案 0 :(得分:0)

我不确定你启用了什么意思,但我会抓住它。

我认为你的意思是可见或不可见。

HTMLPanel panel = new HTMLPanel();
panel.setVisible(false); // Disabled
panel.setVisible(true);  // Enabled

希望这就是你要找的东西。

答案 1 :(得分:0)

只能启用或禁用少数HTML元素,例如输入。 GWT为可以获得焦点的元素设置了setEnabled():

http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/user/client/ui/FocusWidget.html#setEnabled(boolean)

答案 2 :(得分:0)

只能禁用某些表单元素(输入,选项)。

要禁用:

widget.getElement().setAttribute("disabled","disabled");

要再次启用:

widget.getElement().removeAttribute("disabled");

对于其他小部件,您需要将其样式设置为模仿“禁用”。 (例如,将颜色设置为灰色)

答案 3 :(得分:0)

要在未继承自 FocusWidget的窗口小部件中显示启用和禁用功能。

您需要覆盖样式和事件处理实现。在enableFl中保留MyHTMLPanel extends HTMLPanel

第1步 - 提供启用和停用样式。使用不透明度css打开/关闭灰色着色。根据enableFl的状态打开/关闭启用/禁用功能。

第2步 - 通过覆盖onBrowserEvent并在您自己的enableFl状态下执行条件来禁用/启用窗口小部件上的事件处理。

第3步 - 以递归方式停用HTMLPanel内部的所有小部件。

如果您的用例很简单,您可以选择使用 com.google.gwt.user.client.ui.HTML 而不是 com.google.gwt.user.client.ui .HTMLPanel

答案 4 :(得分:0)

不幸的是,Widget中没有这样的方法。

但是有一点空间可以实现。我在谷歌小组的帮助下使其工作

public void setEnabled (boolean e)
 {
  Iterator<Widget> itr = grd.iterator (); // grd is a FlexTable which
contains my form controls

  while (itr.hasNext ())
  {
   Widget w = itr.next ();

   if (w instanceof TextBox)
   {
    TextBox t = (TextBox) w;
    t.setEnabled (e);
   }

   if (w instanceof PasswordTextBox)
   {
    PasswordTextBox t = (PasswordTextBox) w;
    t.setEnabled (e);
   }

  ...
  }