2

我正在尝试查看是否可以执行以下操作:

  • 让一些 Javascript 调用 JavaFX。
  • 然后让 JavaFX 产生一个线程来完成 Javascript 提供的工作。
  • 回到 Javascript 并允许它在 JavaFX 处理生成的线程时继续。
  • 然后让 JavaFX 在衍生线程的工作完成时通知 Javascript。

据我了解,Javascript 没有真正广泛支持的多线程。不过,我正在使用 Javascript 和 JavaFX 开发一个项目,如果这能代替它会有所帮助。任何帮助表示赞赏,谢谢!

编辑
我正在使用 JavaFX 中的 WebEngine 来处理 UI,并使用 HTML 和 Javascript 来创建 UI。我没有使用Nashorn jjs -fx

4

1 回答 1

0

上周我试图做这样的事情,但每次我尝试从 javascript 到 javafx 的回调时,虚拟机都会出错。

尽管如此,在 WebEngine Api

http://docs.oracle.com/javafx/2/api/javafx/scene/web/WebEngine.html

在名为“从 JavaScript 回调 Java”的部分中有一个关于如何执行此操作的小示例。

如果该示例对您有用,您只需要在此之后启动一个任务,并且有一篇关于 javafx 中的并发性的文章讨论了它

http://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm

每次 loadWorker 更改时,我制作的小程序使用 executeScript() 函数检查 javascript 对象,如果对象存在,它会执行任务。

我认为虽然我没有检查这一点,但如果示例无法正常工作,也许您可​​以尝试使用 WebEngine 中包含的 confirmHandler 或 promptHandler 来启动您的任务。

于 2013-09-05T19:46:37.883 回答