【发布时间】:2016-11-24 09:25:47
【问题描述】:
假设我有一个控件的visibleProperty(),它绑定到应用程序某处的BooleanProperty。
我想要实现的是在另一段代码中添加一个额外的绑定,以确保可见性是例如总是假的,不管它现有的或即将到来的绑定。但是,如果存在返回 false 的绑定,则永远不可能将可见性设置为 true。所以我需要实现一种布尔逻辑。
第一次尝试是使用 OR/AND 连接。
tableColumn.visibleProperty().and(Bindings.createBooleanBinding(() -> false));
但正如您在以下示例中看到的那样,这永远行不通。
public static void main(String[] args) {
BooleanProperty a = new SimpleBooleanProperty(false);
BooleanProperty b = new SimpleBooleanProperty(true);
a.bind(b);
System.out.println(a.get());
a.and(Bindings.createBooleanBinding(() -> false));
System.out.println(a.getValue());
}
也许你们中的某个人有一个更有创意的想法。
谢谢,结婚
【问题讨论】:
-
这个问题真的没有意义。
a.bind(b)表示a将始终具有与b相同的值。听起来您正在尝试执行一些更改bind含义的代码:根本没有办法做到这一点。如果您希望a的值依赖于一些更复杂的表达式,您只需绑定到更复杂的表达式,例如a.bind(b.and(Bindings.createBooleanBinding(() -> false)));
标签: java javafx data-binding boolean-logic