当前位置: 首页 > 知识库问答 >
问题:

让JavaFX等到时间线完成

单于轶
2023-03-14

我有两个时间线运行在一个函数中,它们都影响一个对象,问题是当我玩第一个时间线时,其他时间线也开始在下一行代码中,我怎么能等到第一个时间线结束再玩另一个时间线呢?

共有1个答案

柳英豪
2023-03-14

timeline.play()是异步的-它在后台启动动画并立即返回。有几种方法可以实现顺序执行。哪一个最适合取决于您的用例。

  1. 只使用一个时间线并将关键帧从第二个时间线移动到第一个时间线,调整开始持续时间。
  2. 第一个时间线完成后启动第二个时间线:timeline1.setonfinished(E->timeline2.play()).
  3. 如果可以,请使用transitions而不是Timelines并将它们封装在SequentialTransition.
 类似资料:
  • 问题内容: 我在Unix上运行Java进程。 我需要运行一个外部进程,该进程由使用ProcessBuilder的主进程生成。主进程等待,直到外部进程完成,然后生成下一个外部进程。我一直工作到这里。 } ` 我不知道怎么做。对于某些输入,外部进程挂起,在这种情况下,我想等待一个设置的超时时间,如果到那时外部进程还没有完成,只需杀死它,然后将控制权返回给主进程(以及退出值,这样我可以跟踪失败的进程),

  • 我正在我的UI线程中调用一个方法。在这个方法中创建了一个新线程。我需要UI线程等待这个新线程完成,因为我需要这个线程的结果来继续UI线程中的方法。但我不想让UI在等待时冻结。有没有办法让UI线程在不忙的情况下等待?。

  • 我使用JavaFX中的时间线对进行倒计时: 我想在时间线结束后返回一个值: 下面是一个最小的、完整的、可验证的示例: 您可以看到它首先显示“countdown Finished”并向下倒数到0,而不是从倒计时开始并向下倒数到“countdown Finished”。

  • 我打算在主线程中启动2个线程,主线程应该等到所有2个子线程完成,我就是这样做的。 在上面的代码中,确实让主线程等待子线程,但问题是,在第一个线程完成之前不会创建第二个线程。这不是我想要的。 我想要的是,这两个线程立即在主线程中创建,然后主线程等待它们完成。似乎做不到,是吗? 我想,也许我可以通过一个信号灯来完成这项工作,但还有别的方法吗?

  • motioncfp.java:

  • 我正在用JavaFX开发一个数据挖掘应用程序,它依赖于WebView(因此也依赖于WebEngine)。挖掘分两步进行:首先,用户使用UI导航到WebView中的一个网站,以配置可以在哪里搜索感兴趣的数据。其次,使用定期运行的后台任务,WebEngine加载相同的文档,并尝试从加载的文档中提取数据。 这种方法在大多数情况下都能很好地工作,但是最近我遇到了一些使用AJAX呈现内容的页面的麻烦。为了检