Javafx 执行顺序:两个绑定中的一个属性?
当我有一个属性作为两个不同绑定中的依赖项时;并且属性已更改-将首先调用/重新计算哪个绑定 我做了一个练习:Javafx 执行顺序:两个绑定中的一个属性?,javafx,binding,Javafx,Binding,当我有一个属性作为两个不同绑定中的依赖项时;并且属性已更改-将首先调用/重新计算哪个绑定 我做了一个练习: y.bind(a.or(b)); x.bind(a.or(c)); x.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> { System.out.println
y.bind(a.or(b));
x.bind(a.or(c));
x.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
System.out.println("x has changed");
});
y.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
System.out.println("y has changed");
});
y.bind(a.or(b));
x、 绑定(a.或(c));
x、 addListener((observeValueIt’s's's the order of the declaration of the bindings:y.bind(a.or(b));x.bind(a.or(c))
。工作流是这样的:a
被标记为要更改->所有绑定都将失效:首先y
-y
触发队列中的更改事件;然后x
被更改-x
的更改事件现在也在队列中->最后a
也将其eve放入队列nt到队列:y->x->a。谢谢-但我不明白的是,当我更改a时,为什么不首先调用a-Listener?是否有(任何其他)方法可以首先通知a值的更改?这是因为绑定声明的顺序:y.bind(a.or(b));x.bind(a.or(c))
。工作流是这样的:a
被标记为要更改->所有绑定都将失效:首先y
-y
触发队列中的更改事件;然后x
被更改-x
的更改事件现在也在队列中->最后a
也将其eve放入队列nt到队列:y->x->a。谢谢-但我不明白的是,当我更改a时,为什么不首先调用a-Listener?是否有(任何其他)方法可以首先通知a值的更改?
a.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
System.out.println("a has changed");
});
y.bind(a.or(b));
x.bind(a.or(c));
x.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
System.out.println("x has changed");
});
y.addListener((ObservableValue<? extends Boolean> arg0, Boolean oldValue, Boolean newValue) -> {
System.out.println("y has changed");
});