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/16764549/

相关文章:

c++ - 我如何在我的程序中使用休眠时间?

java - Android/java - 在 onClick 中使用计时器循环

java - 如何使用定时器动态调整帧大小?

c - 选择中断的系统调用

c# - 如何从另一个表单的线程将文本粘贴到表单的 RichTextBox?

java - 同步对类字段的访问

multithreading - ZeroMQ 和多线程

binding - JavaFX 可以处理循环属性绑定(bind)图吗?

media-player - JavaFX : MEDIA_UNSUPPORTED : media type not supported

JavaFX 停止在 WebView 中打开 URL - 改为在浏览器中打开