来自另一个线程的JavaFX webengine.executeScript()。

时间:2014-02-01 22:47:17

标签: java multithreading javafx

我有一个应用程序使用WebView及其支持WebEngine来显示一个包含一些JavaScript函数的简单网页。我还有另一个线程,有时从互联网接收消息。我希望这些使用webengine.executeScript()在网页上触发脚本。

我的问题是JavaFX线程模型不允许在主UI线程之外的任何其他线程上运行它,并抛出异常。我查看了属性,任务,服务,但似乎没有人做我需要的。脚本快速执行 - 让它在UI线程上运行不是问题,但我不知道如何将消息传递给UI线程。

1 个答案:

答案 0 :(得分:1)

您可以使用Platform.runLater()

Platform.runLater(new Runnable() {
    @Override
    public void run() {
        webEngine.executeScript("foo()")
    }
});