如何将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);
}
}
});
提前非常感谢。
答案 0 :(得分:2)
更好的方法是执行值更改处理程序。用户甚至可以使用键盘来勾选复选框!
CheckBox c = new CheckBox();
c.addValueChangeHandler(new ValueChangeHandler<Boolean>() {
@Override
public void onValueChange(ValueChangeEvent<Boolean> event) {
componentList.setVisible(event.getValue());
}
});
}
编辑 -
您应该在列表外添加项目。并且,根据默认复选框值(已选中或未选中),在开始时将组件设置为可见或隐藏在外部。
答案 1 :(得分:1)
已启用!=已选中! (使用isChecked
或getValue
)
否则,请使用Bhat的代码并提出建议。