仅使用 JavaScript (Nashorn) 进行 JavaFX 开发

标签 java javafx java-8 javafx-8 nashorn

既然 Nashorn 在 Java 8 中可用,是否有一种方法可以仅使用 JavaScript 文件编写 JavaFX 应用程序?我在哪里可以找到更多关于此的信息或视频?你会如何编译它?

或者是否需要最少的引导文件集?

最佳答案

是的,您可以仅使用 JavaScript (Nashorn) 开发 JavaFX 程序。

如何从 JavaScript 访问 JavaFX

使用jjs -fx yourscript.js 命令行开关。

jjs 上的 -fx 标志将使用 javafx.application.Application 引导脚本.

JavaScript 没有编译步骤,只需编写脚本并使用 jjs -fx 运行即可。

不需要引导文件。

jjs 二进制文件和 JavaFX 运行时都随 Oracle Java 8 运行时环境 (JRE) 提供,jjs 位于 JRE 安装的 bin 目录中。

示例代码

Hello World 示例(从 Jim Laskey's blog 复制)。

var Button    = Java.type("javafx.scene.control.Button");
var StackPane = Java.type("javafx.scene.layout.StackPane");
var Scene     = Java.type("javafx.scene.Scene");

$STAGE.title = "Hello World!";
var button = new Button();
button.text = "Say 'Hello World'";
button.onAction = function() print("Hello World!");
var root = new StackPane();
root.children.add(button);
$STAGE.scene = new Scene(root, 300, 250);
$STAGE.show();

其他资源

有许多使用 Nashorn 脚本运行 JavaFX 的网络示例。

  1. JavaFX with Nashorn Hello World and 3D demos
  2. JavaFX with Nashorn Canvas example .
  3. JavaFX with Nashorn Animated Gauge Demo .
  4. JavaFX with Nashorn LED readout demo .

关于仅使用 JavaScript (Nashorn) 进行 JavaFX 开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23436894/

相关文章:

java - 使用拖放重新排序 JList

java - Scriptlet 变量不会在自定义 JSP 标记的属性内进行评估

java - Flyway - 特定环境的不同迁移 - Spring Boot

javafx - 在JavaFX中,如何为网格的反面着色?

java - 如何在文本区域上绘图?

java - Graphics Context 只会在一个线程中绘制

java - 将非最终对象传递给方法引用

java - Stream<String> 仅输入 Files.lines() 中的最后一行

java - 获取输入时扫描仪抛出 java.util.NoSuchElementException

java - 在 Java 8 Comparator 中执行 Ordering.lexicographyal() 的等效方法是什么?