SwingUtilities/Platform .runLater 有什么区别?

use*_*925 0 java runnable

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

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

        }
    });
Run Code Online (Sandbox Code Playgroud)

另一个是

     SwingUtilities.invokeLater(new Runnable() {
        public void run() {
        }
    });
Run Code Online (Sandbox Code Playgroud)

我想知道两者之间的区别是什么,以及何时使用一个或另一个,或者它们是否意味着完全相同的东西。谢谢你的帮助!

Mad*_*mer 5

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

差异是基于两个框架处理事件调度方式的差异。

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

您应该Platform.runLater在处理 JavaFX 和SwingUtilities处理 Swing 时使用...

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