实现JavaFXProgressBar进度条实时刷新
进度条刷新失败的原因
最近有个需求需要使用进度条, 在网上查了不少,但是详细有用的并不多 , 所以想分享一下最近一次成功的经验
JavaFX相对来说实在有些冷门了,网上的可用教程并不多,所以很多时候需要我们自己去关灯摸索着前进。
我们要知道 Java FX的主进程是JavaFX Application这个进程,这个进程掌管UI中的更新。
当我们把逻辑与UI块同时使用一个线程运行时,Java FX Application是腾不出手来进行UI更新的,所以我们在涉及ProgressBar的时候就需要多线程进行逻辑处理。
解决方案
我试过网上的很多办法,最后发现使用Task类可能是我觉得最顺手的一个了。
需要说一下的是,我演示的样例为fxml编写的形式。但纯代码形式也只是大同小异,毕竟我们寻求的只是一个解决的方案,一个思想而已
下面上代码:
这是fxml代码(视图区)
<children>
<Pane prefHeight="296.0" prefWidth="265.0">
<children>
<Button fx:id="bt1" layoutX="105.0" layoutY="34.0" mnemonicParsing="false" onAction="#startTest" text="Button" />
<ProgressBar fx:id="pb" layoutX