两个 BooleanProperties 之间的双向反向绑定

Bidirectional inverted binding between two BooleanProperties

首先,幼稚的尝试:

booleanProperty1.bindBidirectional(booleanProperty2.not()); // type mismatch

这行不通。我要么必须将其更改为单向绑定(因此它将接受 BooleanBinding 作为参数)或删除 .not().

实际实现我的目标的最佳方法是什么?

为 booleanProperty2 添加侦听器。

在其值发生变化(触发侦听器)时,将 booleanProperty 设置为 booleanProperty2 的相反值。

最简单的方法是将侦听器包含在两个属性中并反转要在其他 属性 上设置的值。

booleanProperty1.addListener((obs,old,val)->booleanProperty2.set(!val));
booleanProperty2.addListener((obs,old,val)->booleanProperty1.set(!val));