GWT-HTML小部件-setEnabled

GWT-HTML小部件-setEnabled,gwt,Gwt,有没有办法使com.google.gwt.user.client.ui.HTML小部件启用或未启用?我尝试过,但似乎没有设置启用(布尔)方法:请分享您的经验 谢谢我不知道你说的启用是什么意思,但我想试试看 我想你的意思是可见或不可见 HTMLPanel=newhtmlpanel(); 面板。设置可见(假);//残废 panel.setVisible(true);//启用 希望这就是您想要的。只有少数HTML元素可以启用或禁用,比如输入。GWT为可以获得焦点的元素启用了setEnabled():

有没有办法使
com.google.gwt.user.client.ui.HTML
小部件启用或未启用?我尝试过,但似乎没有设置启用(布尔)方法:请分享您的经验


谢谢

我不知道你说的启用是什么意思,但我想试试看

我想你的意思是可见或不可见

HTMLPanel=newhtmlpanel();
面板。设置可见(假);//残废
panel.setVisible(true);//启用

希望这就是您想要的。

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

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

要禁用:

widget.getElement().setAttribute("disabled","disabled");
要再次启用:

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

以显示小部件中未继承的启用和禁用功能。 您需要重写样式和事件处理实现。在
MyHTMLPanel扩展HTMLPanel
中保留一个
enableFl

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

步骤2-通过覆盖
onBrowserEvent
并使其执行取决于您自己的enableFl状态来禁用/启用小部件上的事件处理

步骤3-递归禁用HTMLPanel内部的所有小部件


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

,不幸的是,小部件中没有这样的方法

但是有一点空间可以实现。我是在谷歌集团的帮助下实现的

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);
   }

  ...
  } 
public void setEnabled(布尔值e)
{
迭代器itr=grd.Iterator();//grd是一个FlexTable,它
包含我的窗体控件
while(itr.hasNext())
{
Widget w=itr.next();
if(带instanceof文本框)
{
文本框t=(文本框)w;
t、 设置启用(e);
}
if(带密码文本框的实例)
{
密码文本框t=(密码文本框)w;
t、 设置启用(e);
}
...
} 

启用是什么意思?可见?否,“启用真/假”表示可以/不能单击或按下鼠标等(小部件事件支持)你还没有找到一个有用的答案吗!!!不,我的意思是“为颜色启用真/假”,但要为鼠标事件启用,例如ETC,它会改变小部件的颜色,使其看起来像按钮按下时一样真的“禁用”。setEnabled(false)?@user592704是的。如果你只是想禁用事件,你只需要执行
unsinkEvents
,但有没有办法恢复激发的事件?我的意思是激发事件并再次添加它们不是最佳选择否,我的意思是不是“可见/不可见”,而是“启用”意味着“如果设置为启用,则无法像按钮小部件一样单击”(false)“好吧,在Widget中没有其他人说过的那样的方法。你必须自己实现它。我知道没有这样的方法:)我不太确定如何使它支持这种方法?也许你知道这方面的一些代码示例,因为我自己找不到:谢谢。这很有趣,但你能告诉我吗?”有多少代码片段?我不太清楚你的意思。问题是关于HTML小部件…问题是当你调用Button.setEnabled(false)方法时,要使HTML小部件像Button小部件一样禁用。例如,我找不到任何有用的HTML小部件代码示例,所以可能我遗漏了一些东西?