选中复选框时,切换所需/不需要TextField

时间:2016-10-17 20:18:53

标签: java vaadin

我有一个文本字段,我想根据是否选中复选框来切换为必填字段。我无法让ValueChangeEventListener发挥得很好。

这是我到目前为止所做的:

private TextField myTextField = new TextField("Name");
myTextField.setRequired(true);

private CheckBox  myCheckBox;
myCheckBox = createCheckBox();


private CheckBox createCheckbox() {
    CheckBox checkBox = new CheckBox("My checkbox");
    checkBox.setImmediate(true);
    checkBox.addValueChangeListener(new ValueChangeListener() {
        @Override
        public void valueChange(ValueChangeEvent event) {
            toggleRequired();
        }
    });
    return checkBox;
}


private void toggleRequired() {
    if (myCheckBox.getValue() != true) {
        myTextField.setRequired(false);
    } else {
        myTextField.setRequired(true)
    }
}

valueChangeListener被触发的次数太多次从true变为false返回true。不知道我在这里做错了什么,真的很感激一些帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

好的我明白了!这是一个非常简单的解决方案,我不得不改变

 checkBox.addValueChangeListener(new CheckBox.ValueChangeListener() {});

我正在引用一些以下属性类:

properties.ValueChangeListener();