java - SwingUtilities/Platform .runLater 之间有什么区别?

标签 java runnable

我有两个单独的代码,一个是:

    Platform.runLater(new Runnable() {
        public void run() {

        }
    });

另一个是

     SwingUtilities.invokeLater(new Runnable() {
        public void run() {
        }
    });

我想知道两者之间的区别是什么,何时使用其中之一,或者它们的含义是否完全相同。感谢您的帮助!

最佳答案

Platform 来自 JavaFX 框架,SwingUtilities(委托(delegate)给 EventQueue)来自 Swing 框架。

差异在于两个框架处理事件分派(dispatch)的方式不同。

每个线程都使用一个线程来执行其事件调度角色,这表明 JavaFX 使用与 Swing 不同的线程。

处理 JavaFX 时应使用 Platform.runLater ,处理 Swing 时应使用 SwingUtilities...

看看JavaFX Architecture ,这可能会提供更多的见解,特别是 Glass Windowing Toolkit

关于java - SwingUtilities/Platform .runLater 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18970367/

相关文章:

java - ColorPicker 中的自定义调色板

java - 如何在javafx中拉伸(stretch)图像以使其适合整个屏幕

java - Android - 如何连续运行一个线程,一个接一个

java - Eclipse Java 编辑器换行不符合预期

java - Spring 4、MyBatis、带注解的多数据源

java - (Java 到 Javascript)Nodejs Crypto Javascript 中的 javax.crypto.Cipher 等效代码

java - 这种线程长计算的实现是否正确?

java - 匿名 Runnable 中使用的最终 int 参数

java - 如何重新启动一个线程?

JavaFX 不在 FX 应用程序线程上