Tom*_*zyk 15 java binding boolean javafx-8
我的目标是绑定这两个属性,例如何时checkbox被选中然后paneWithControls被启用,反之亦然.
CheckBox checkbox = new CheckBox("click me");
Pane paneWithControls = new Pane();
checkbox.selectedProperty().bindBidirectional(paneWithControls.disableProperty());
Run Code Online (Sandbox Code Playgroud)
然而,这个代码与我想要的相反.我需要像反布尔绑定这样的东西.是否有可能或者我必须制定一个方法来处理它?
Jam*_*s_D 25
如果只需要单向绑定,则可以使用以下not()定义的方法BooleanProperty:
paneWithControls.disableProperty().bind(checkBox.selectedProperty().not());
Run Code Online (Sandbox Code Playgroud)
这可能是你想要的,除非你真的有其他机制来改变disableProperty()那些不涉及的东西checkBox.在这种情况下,您需要使用两个侦听器:
checkBox.selectedProperty().addListener((obs, wasSelected, isNowSelected) ->
paneWithControls.setDisable(! isNowSelected));
paneWithControls.disableProperty().addListener((obs, wasDisabled, isNowDisabled) ->
checkBox.setSelected(! isNowDisabled));
Run Code Online (Sandbox Code Playgroud)