2017-05-04 46 views
0

我还在学习的双重价值,我希望你能帮助我:如何在JavaFX进度绑定到存储在对象

我有一个存储double值,表示进度百分比的对象myObject的计算 (当myObject初始化时,值为0D,并经常在myObject本身内更新,直到达到100D)


我想绑定这种双重价值的JavaFX的进度,这样,当存储在myObject的值被更新,所以进度会。


我听说过一些,观察者/可观察/监听
这是我在找什么?有人可以给我看一些代码,以便我能理解吗?

谢谢!

+0

这可能有帮助:http://docs.oracle.com/javase/8/javafx/properties-binding-tutorial/binding.htm#JFXBD107 –

回答

1

我知道我迟了五个月,但我只是had a very similar problem,在我的搜索过程中遇到了你的问题,没有人回答。也没有人回答我的问题,所以我一直在挖,直到我自己想出来。我假设如果我偶然发现你的帖子寻找答案,其他人最终也会这样做,所以我想分享我的答案。

是的,你要找的是ObservableDouble。假设你能够改变myObject的是一个双:

DoubleProperty barUpdater = new SimpleDoubleProperty(myObject); 

而且,在初始化的地方(或任何你使用的工具栏),绑定你的酒吧吧:

progressBar.progressProperty().bind(barUpdater); 

然后,当你想更新ProgressBar时,你可以将设置为更新器的值为别的。

barUpdater.set(myObject); 

这样做,您将更新ProgressBar正在侦听的ObservableDouble,使其更新其值。

请参阅my answer here了解如果您需要使用的代码示例。