【问题标题】:How to bind a JavaFX progressBar to a double value stored in an Object如何将 JavaFX 进度条绑定到存储在对象中的双精度值
【发布时间】:2017-10-02 09:51:29
【问题描述】:

我还在学习中,希望你能帮助我:

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


我想绑定这个double值到一个javaFX progressBar,这样当myObject中存储的值更新时,progressBar也会更新。


我听说了一些关于Observer/Observable/Listener的事情。
这就是我要找的吗?有人可以给我看一些代码以便我理解吗?

谢谢!

【问题讨论】:

标签: java progress-bar observable


【解决方案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 以获取正在使用的代码示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2013-04-13
    • 2015-06-05
    • 2018-09-25
    • 2010-12-08
    相关资源
    最近更新 更多