javascript - 使用 Nashorn/JavaScript 创建 Java GUI 应用程序

标签 javascript java user-interface nashorn

我正在尝试创建一个应用程序(游戏),它使用java来操裁剪理、逻辑等,但会使用现有的javascript库来执行脚本、图形和ui等操作,但在加载图表时。通过 nashorn nashorn.eval("load('chart.js')"); 我得到以下内容(或其他库的类似内容) 线程“main”中出现异常 javax.script.ScriptException:ReferenceError:chart.js 中第 668 行未定义“window”

是否可以按原样使用这些库,或者是否需要进行任何修改,以及如何在 java 应用程序中显示脚本(或者是否有可能,有或没有 nashorn)?

谢谢。

最佳答案

如上所述,您可以使用 JavaFX WebView 将“浏览器”HTML+脚本加载到 Nashorn JavaFX GUI 中。您可以加载生成的 HTML 以及从 URL 加载。

简单的例子:

http://hg.openjdk.java.net/jdk9/dev/nashorn/file/f884dff432a7/samples/showsysprops.js http://hg.openjdk.java.net/jdk9/dev/nashorn/file/f884dff432a7/samples/showenv.js

您还可以从 Nashorn 引擎访问“浏览器”JS/DOM 对象并使用 nashorn 脚本进行操作(如果需要):

http://hg.openjdk.java.net/jdk9/dev/nashorn/file/f884dff432a7/samples/browser_dom.js

鉴于您将使用 Java 库,您可能还需要考虑不带 WebView 的 JavaFX GUI(甚至根据需要进行混合匹配)。这里有一些简单的例子:

http://hg.openjdk.java.net/jdk9/dev/nashorn/file/f884dff432a7/samples/jsonviewer.js http://hg.openjdk.java.net/jdk9/dev/nashorn/file/f884dff432a7/samples/time_color.fx http://hg.openjdk.java.net/jdk9/dev/nashorn/file/f884dff432a7/samples/fxml_example.js

将第三方 HTML+脚本加载到 JavaFX GUI 并从 nashorn 脚本扩展它的有点复杂的示例:

https://gist.github.com/sundararajana/7b19ec08a8878426af5e

关于javascript - 使用 Nashorn/JavaScript 创建 Java GUI 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31507598/

相关文章:

javascript - 使用 jquery,如何使用 find() 引用 multiple= true 的选择控件的 "option"数组?

javascript - 模块未定义

javascript - 显示具有固定宽度和高度的图像而不会变形/扭曲

Android Espresso : cannot resolve symbol AndroidJUnit4. 类

c# - 将模型分配给 Razor 中的 Javascript 变量

java - Spring Boot - 在不删除代码或更改 POM 的情况下禁用嵌入式 ElasticSearch

java - trello api "PUT/1/cards/[card id]/desc"返回带有消息 "invalid value for value"的 400 响应

java - 从另一个 JDialog 调用时看不到 JDialog 组件

c# - 统一网格作为 ItemsControl 中所有项目的面板模板,第一个除外

java - 处理:内存不足错误