multithreading - 定时器和javafx

标签 multithreading timer javafx-2 javafx

我正在尝试编写一段代码,使用 javafx 使内容以预定但不规则的间隔显示在屏幕上。我尝试使用计时器( java.util ,而不是 javax.swing ),但事实证明,如果您在单独的线程中工作,则无法更改应用程序中的任何内容。(就像计时器)任何人都可以告诉我怎么做如果应用程序都是单独的线程,是否需要一个计时器来与应用程序交互?

最佳答案

您不需要 java.util.Timerjava.util.concurrent.ScheduledExecutorService 来安排 JavaFX 应用程序线程上的 future 操作。您可以使用 JavaFX Timeline 作为计时器:

new Timeline(new KeyFrame(
        Duration.millis(2500),
        ae -> doSomething()))
    .play();

或者,您可以使用 ReactFX 中的便捷方法:

FxTimer.runLater(
        Duration.ofMillis(2500),
        () -> doSomething());

请注意,您不需要将操作包装在 Platform.runLater 中,因为它已经在 J​​avaFX 应用程序线程上执行。

关于multithreading - 定时器和javafx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56684186/

相关文章:

java - 使用 javafx 将子窗口面板放入 Canvas 场景中

JavaFX 和 Swing --- 找到中间立场?

c++,std::atomic,什么是 std::memory_order 以及如何使用它们?

c# - 什么是异步编程?

JavaScript 计时器未更新

java - 如何在 android 或 : what exactly are daemon threads in android? 中安排一些代码执行

java - 如何创建 JavaFX 对话框?

c# - C#有没有多处理的概念(除了多线程)?

c++ - 多线程包装器

java - 自动更新JTable