GWT复选框隐藏/显示小部件

时间:2011-07-05 16:16:03

标签: gwt

如何将clickHandler添加到gwt复选框,以便在选中复选框时显示列表框,当取消选中时,列表框会消失?

以下是我到目前为止所做的事情。当我选中复选框时,会出现列表,但是当我取消选中它时,列表框不会消失。

VerticalPanel vPanel = new VerticalPanel();
ListBox list = new listBox();
list.setVisible(false);
vPanel.add(list);
.....
.....
checkBox.addClickHandler(new ClickHandler() 
{
    public void onClick(ClickEvent event) 
    {
        boolean checked =((CheckBox) event.getSource()).isEnabled();
        if(checked==true)
        {
            list.addItem("a");
            list.addItem("b");
            list.addItem("c");
            list.setVisible(true);
        }
        else if(checked==false)
        {
            componentList.setVisible(false); 
        }
    }
});

提前非常感谢。

2 个答案:

答案 0 :(得分:2)

更好的方法是执行值更改处理程序。用户甚至可以使用键盘来勾选复选框!

CheckBox c = new CheckBox();
c.addValueChangeHandler(new ValueChangeHandler<Boolean>() {

    @Override
    public void onValueChange(ValueChangeEvent<Boolean> event) {
        componentList.setVisible(event.getValue());

    }
});
}

编辑 -

您应该在列表外添加项目。并且,根据默认复选框值(已选中或未选中),在开始时将组件设置为可见或隐藏在外部。

答案 1 :(得分:1)

已启用!=已选中! (使用isCheckedgetValue

否则,请使用Bhat的代码并提出建议。