有没有办法在点击时重新启用禁用的复选框?

时间:2010-08-20 23:54:27

标签: gwt

我想允许我的用户在点击时重新启用已禁用的复选框。我试图将onClickHandler附加到我的复选框,但由于它被禁用,它看不到捕获该事件:

checkbox.onClickHandler(new ClickHandler() {
  public void onClick(ClickEvent clickEvent) {
    // do something
  }
});

我错过了什么吗?或者我是否需要编写自己的复选框,从CheckBox扩展到那样做?

3 个答案:

答案 0 :(得分:0)

您可以尝试将CheckBox放在FocusPanel或类似内容中。这样,当禁用该复选框时,单击事件将落入FocusPanel,可以为您启用复选框。您可能希望在复选框单击处理程序中放置event.stopPropagation(),以便在启用复选框时停止调用焦点面板单击处理程序。

我没有对此进行测试,但我相信它会起作用。但要小心。我建议除了启用复选框之外还提供其他方法,因为很多用户都不会理解点击禁用的复选框会产生影响。

答案 1 :(得分:0)

本身不是答案,但是我遇到了类似的问题,试图向禁用的按钮添加工具提示,告诉用户为什么禁用它但工具提示不显示已禁用的项目。我不得不把按钮放在容器里,把工具提示放在容器上。

答案 2 :(得分:0)

在GWT 2.2上,CheckBox小部件:

 CheckBox check= new CheckBox();
               check.addClickHandler(new ClickHandler() {
                          public void onClick(ClickEvent event) {    
                              if(((CheckBox) event.getSource()).getValue()){                                     
                                  //is Checked
                              }else{
                                  //unChecked
                              }


                          }
                        });