java - 如何绑定(bind)反向 boolean 值,JavaFX

标签 java binding boolean javafx-8

我的目标是绑定(bind)这两个属性,例如当 checkbox 被选中时 paneWithControls 被启用,反之亦然。

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

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

然而,使用此代码却与我想要的相反。我需要类似反向 boolean 绑定(bind)的东西。是否有可能或者我必须制定一种方法来处理它?<​​/p>

最佳答案

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

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

这可能是您想要的,除非您真的有其他机制来更改不涉及 checkBoxdisableProperty()。在这种情况下,您需要使用两个监听器:

checkBox.selectedProperty().addListener((obs, wasSelected, isNowSelected) -> 
    paneWithControls.setDisable(! isNowSelected));

paneWithControls.disableProperty().addListener((obs, wasDisabled, isNowDisabled) ->
    checkBox.setSelected(! isNowDisabled));

关于java - 如何绑定(bind)反向 boolean 值,JavaFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29616246/

相关文章:

java - 在给定时间内没有提交任务时关闭 ExecutorService

javascript - !0 和 !1 不仅仅是 true/false 的简写吗?

java - 我正在制作一本 Java 互动小说,但我的 JTextArea 消失了

java - 检查字符是否是Java中的特殊字符

java - 使用 SpringBoot CrudRepository 查找一个已知条目

wpf - 绑定(bind)到画笔的颜色

更新绑定(bind)集合时Wpf datagrid行不更新?

c# - XAML 绑定(bind)路径声明中大括号的相关性是什么

java - 为什么 new Formatter().format ("%h", false) 得到 4D5?

javascript - 我的 if 语句给出了错误的输出