在JavaFX中使用JavaScript调用java。可能吗? [英] Invoke java using JavaScript inside JavaFX. Is it possible?

查看:678
本文介绍了在JavaFX中使用JavaScript调用java。可能吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am using WebEngine & WebView from JavaFX. Now I want to execute Java using javascript running inside WebEngine.

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

My question is if it is possible to do so and if yes any hints.

我想做类似下面的事情

<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 里面它将执行该代码。

Now if I call the runSampleJava() inside WebEngine it will execute that code.


  • 这不是关于 Rhino java的JavaScript引擎

  • 我知道可以注入java对象,例如: JSObject window =(JSObject)webEngine.executeScript(window); 等等。但这不是我要找的。
  • This is not about Rhino JavaScript engine for java
  • I know it is possible to inject java object, eg: JSObject window = (JSObject) webEngine.executeScript("window"); and so on. But this is not what I am looking for.

推荐答案

我无法创造Java实例,但我设法做的是将用Java创建的对象实例推送到JavaScript并回调它们。

I didn't manage to create Java instances but the thing I managed to do is to push object instances created in Java into JavaScript and call back to them.

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

So my Java-Code looks like this:

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

JavaHelper 示例(必须公开):

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

然后在JavaScript中:

And then then in JavaScript:

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

你可以看到我的工作在哪里通过 https在Java和JavaScript之间来回沟通:@gref =http://tomsondev.bestsolution.at/2012 / 10/29 / eclipsecon-javafx-demo-app-videos /rel =nofollow noreferrer> http://tomsondev.bestsolution.at/2012/10/29/eclipsecon-javafx-demo-app-videos/

You can see my work where I communicate between Java and JavaScript back and forth at https://github.com/tomsontom/fx-ide/tree/master/at.bestsolution.javafx.ide.editor and in action at http://tomsondev.bestsolution.at/2012/10/29/eclipsecon-javafx-demo-app-videos/

这篇关于在JavaFX中使用JavaScript调用java。可能吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆