如何绑定反布尔值,JavaFX

时间:2015-04-13 22:38:22

标签: java binding boolean javafx-8

我的目标是绑定这两个属性,例如选择checkbox时启用paneWithControls,反之亦然。

CheckBox checkbox = new CheckBox("click me");
Pane paneWithControls = new Pane();

checkbox.selectedProperty().bindBidirectional(paneWithControls.disableProperty());

使用此代码,但它与我想要的相反。我需要像反布尔绑定这样的东西。是否有可能或者我必须制定一个处理它的方法?

4 个答案:

答案 0 :(得分:23)

如果您只想要单向绑定,可以使用not()中定义的BooleanProperty方法:

paneWithControls.disableProperty().bind(checkBox.selectedProperty().not());

这可能是您想要的,除非您确实有其他机制来更改不涉及disableProperty()的{​​{1}}。在这种情况下,您需要使用两个侦听器:

checkBox

答案 1 :(得分:1)

checkbox.selectedProperty().bindBidirectional(paneWithControls.disableProperty().not());

应该工作

答案 2 :(得分:0)

答案 3 :(得分:0)

使用EasyBind library可以轻松地从checkbox.selectedProperty()创建一个新的ObservableValue,该值具有相反的值。

paneWithControls.disableProperty().bind(EasyBind.map(checkbox.selectedProperty(), Boolean.FALSE::equals));