JavaFX DoubleProperty intValue()方法返回0,其中返回0 .... 100

时间:2017-05-08 03:38:27

标签: java javafx properties numbers

  

描述

我有一个Label,其文本绑定到ProgressBar progressProperty。然后我将进度条的值乘以100,并且我希望条形图将进度条* 100的值显示为整数加%,例如"50 %"或{{1等等:

"25 %"
  

问题

由于某种原因,label.textProperty().bind(Bindings.concat(progressBar.progressProperty().multiply(100.00).intValue()," %"); 方法始终返回0。如果我删除它,则返回进度条的值为double,例如.intValue()25,05345 % ...

  

最后

为什么32,3456534 %会这样?

1 个答案:

答案 0 :(得分:0)

似乎我遗漏了一些东西,或者下面的装订是垃圾收集了吗?

label.textProperty().bind(Bindings.concat(progressBar.progressProperty().multiply(100.00).intValue()," %");

所以我用以下内容替换它并且有效...

label.textProperty().bind(Bindings.createStringBinding(
        () -> String.format("Work Done : %d %%", progressBar.progressProperty().multiply(100.00).intValue()),
        progressBar.progressProperty()));