gpt4 book ai didi

java - 在 JavaFX 中使用 JavaScript 调用 java。是否可以?

转载 作者:搜寻专家 更新时间:2023-10-31 20:13:33 29 4
gpt4 key购买 nike

我正在使用 WebEngine & WebView来自 JavaFX .现在我想使用在 WebEngine 中运行的 javascript 来执行 Java .

我的问题是是否可以这样做,如果可以的话有任何提示。

我想做如下的事情

<script type="text/javascript">
function runSampleJava() {
var number = new java.lang.Integer(1234);
var random = new java.util.Random();
java.lang.System.out.println(random.nextInt());
}
</script>

现在如果我调用 runSampleJava()里面WebEngine它将执行该代码。


注意事项

  • 这与Rhino无关Java 的 JavaScript 引擎
  • 我知道可以注入(inject) java 对象,例如:JSObject window = (JSObject) webEngine.executeScript("window");等等。但这不是我要找的。

最佳答案

我没有设法创建 Java 实例,但我设法将用 Java 创建的对象实例推送到 JavaScript 中并回调它们。

所以我的 Java 代码看起来像这样:

JSObject win = (JSObject) engine.executeScript("window");
win.setMember("jHelper", new JavaHelper());

JavaHelper 示例 ( must be public ):

public static class JavaHelper {
public int newInteger(int input) {
// ...
}
public Random newRandom() {
// ...
}
}

然后在 JavaScript 中:

function bla() {
var number = jHelper.newInteger(1234);
var random = jHelper.newRandom();
// ...
}

您可以在 https://github.com/tomsontom/fx-ide/tree/master/at.bestsolution.javafx.ide.editor 看到我在 Java 和 JavaScript 之间来回通信的工作。并在 http://tomsondev.bestsolution.at/2012/10/29/eclipsecon-javafx-demo-app-videos/ 行动

关于java - 在 JavaFX 中使用 JavaScript 调用 java。是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14318472/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com