JavaFX - 如何在不冻结UI的情况下等待?

时间:2016-09-06 19:30:49

标签: multithreading javafx thread-sleep

我知道有关于这个主题的一些问题,但这些都没有帮助我找到解决方案。 我有两个Timeline动画,我想在延迟几秒后执行它们。我要告诉你一个例子:

每次点击鼠标时,动画都会重置为默认延迟时间,比方说5秒。如果我什么都不做,那么时间就会消失,直到它为零。 我到达 0秒时,动画必须为start()。等等。

当然Thread.sleep()会让我的UI冻结,直到任务完成。 我不知道是否应该使用ThreadTask或其他类,因为工作并不复杂。

有很多方法可以做到这一点,但我没有多线程经验,我想学会有效地做到这一点。非常感谢你们。

1 个答案:

答案 0 :(得分:2)

您可以使用

实现您想要的效果
timeline.setDelay(...);

指定时间线开始前的延迟,

timeline.setCycleCount(Animation.INDEFINITE);

使其无限重复,

timeline.playFromStart();

使其从头开始(在指定的延迟之后)。