So today my colleague Bruno Borges asked me if I would have an example where I use JavaFX with Nashorn only...means without writing any Java code and because I had no example I've created one :)
So here you go, simply copy the following code in a file named e.g. nashorn.js :
load('fx:base.js'); load('fx:graphics.js'); var Random = java.util.Random; var lastTimerCall = 0; var Gauge = Packages.eu.hansolo.enzo.gauge.Gauge; var Section = Packages.eu.hansolo.enzo.common.Section; var timer = new AnimationTimer() { handle: function handle(now) { if (now > lastTimerCall + 5000000000) { gauge.value = new Random().nextDouble() * 40; lastTimerCall = now; } } }; var gauge = new Gauge(); gauge.title = 'NashornFX'; gauge.unit = '°C'; gauge.minValue = 0; gauge.maxValue = 40; gauge.sections = [new Section(18, 26), new Section(26, 32), new Section(32, 40)]; gauge.style = ('-section-fill-0: rgba(0, 200, 50, 0.5);' + '-section-fill-1: rgba(200, 100, 0, 0.5);' + '-section-fill-2: rgba(200, 0, 0, 0.5);'); $STAGE.title = 'Nashorn FX'; $STAGE.scene = new Scene(new StackPane(gauge), 400, 400); $STAGE.show(); timer.start();
And with a few lines of code we created a JavaFX scene and add a stage that contains a Gauge that has three sections with custom colors. In addition we also added an AnimationTimer that changes the value of the Gauge every 5 seconds.
For those of you who are wondering how I can access my Enzo-0.2.4.jar file here is solution...you can simply add it to the classpath when calling the script.
To be able to run the application you have to copy the Enzo-0.2.4.jar file to the same folder as the nashorn.js file. The Enzo library can be downloaded here.
To start the application simply execute the following on the command line:
#: jjs -cp Enzo-0.2.4.jar -fx nashorn.js
Please make sure you run that script on JDK 8 !
If everything is correct you should see something like this...
And that's it for today...keep coding... :)
