JavaFX开发:双向协调、异步消息处理与特效实现
1. JavaFX与JavaBeans组件的双向协调
在JavaFX开发中,当 JSpinner 状态改变时,我们需要更新 JavaFX SwingNumberSpinner 中的实例变量。但 ChangeEvent 不会告知具体哪个值发生了改变,所以需要更新所有变量。不过,JavaFX运行时能够判断值是否真的改变,只有值发生实际变化时,触发器或绑定操作才会执行。
为避免无限循环问题,引入了布尔变量 inChange 。当JavaFX变量改变引发状态变化时, inChange 会被设置为 true ,这样状态改变处理器就不会再次更新相同的实例变量。示例代码如下:
var inChange = false;
public var value:Integer =
getModel().getNumber().intValue() on replace {
try {
inChange = true;
getModel().setValue(value);
} finally {
inChange = false;
}
};
通过上述代码,实现了JavaFX对象与JavaBeans组件的全双向协调。即JavaFX对象状态改变时,JavaBeans对象会立即更新以保持同步;反之,JavaBea
超级会员免费看
订阅专栏 解锁全文
4513

被折叠的 条评论
为什么被折叠?



