我正在尝试看看我是否可以执行以下操作:
- 让一些 Javascript 调用 JavaFX。
- 然后让 JavaFX 生成一个线程来完成 Javascript 提供的工作。
- 回到 Javascript 并允许它在 JavaFX 处理生成的线程时继续。
- 然后让 JavaFX 在衍生线程的工作完成时通知 Javascript。
据我了解,没有真正广泛支持的 Javascript 多线程。不过,我正在使用 Javascript 和 JavaFX 开发一个项目,如果它能正常工作,它会有所帮助。感谢您的帮助,谢谢!
编辑
我在 JavaFX 中使用 WebEngine 来处理 UI,并使用带有 Javascript 的 HTML 来创建 UI。我没有使用 Nashorn jjs -fx .
最佳答案
上周我尝试做类似的事情,但每次尝试从 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 来启动您的任务。
关于javascript - Javascript 可以告诉 JavaFX 产生一个线程并在完成时得到通知吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18150477/