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.
I want do something like below
<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>
Now if I call the runSampleJava()
inside WebEngine
it will execute that code.
Rhino
JavaScript engine for javaJSObject window = (JSObject) webEngine.executeScript("window");
and so on. But this is not what I am looking for.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.
So my Java-Code looks like this:
JSObject win = (JSObject) engine.executeScript("window");
win.setMember("jHelper", new JavaHelper());
JavaHelper
example (must be public):
public static class JavaHelper {
public int newInteger(int input) {
// ...
}
public Random newRandom() {
// ...
}
}
And then then in JavaScript:
function bla() {
var number = jHelper.newInteger(1234);
var random = jHelper.newRandom();
// ...
}
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/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With