首页 > 解决方案 > 如果值为 null 并且包含选定的值,则禁用组合框

问题描述

我有两个组合框示例组合框 a 和 b。当comboBox an为null并且从comboBox a中选择特定值时,我想禁用comboBox b。

comboboxb.disableProperty().bind(
        JavaFxObserver.toBinding(
        JavaFxObservable.nullableValuesOf(comboboxa.getSelectionModel().selectedItemProperty())
            .map(test -> !comboboxaEnum.isPresent() || comboboxaEnum.equals(comboboxaEnum.XX) ))
    );

仅当 comboBox 为空时才禁用。

标签: javafxlambdajava-8combobox

解决方案


如果需要检查两个条件,则使用Bindings逻辑运算:

comboBoxB.disableProperty().bind(
    Bindings.or(
       Bindings.equal(comboBoxA.getSelectionModel().selectedItemProperty(), "Value Which Disables"),
       Bindings.isNull(comboBoxA.getSelectionModel().selectedItemProperty())
));

推荐阅读