Going to forward to the fx experts.
On 2013-07-17, at 1:55 PM, TA Hubbard <tahubb...@fxmlguide.com> wrote: > Dear Sirs; > > A fundamental feature of JavaFX's FXML is scripting. The process is simple; > add the <?language javascript?> 'processing instruction' to standard FXML > processing instructions (JavaFX import declarations or statements) then > script. > > As you know, some of the scripting languages include JavaScript, JavaFX, and > DSL's such as Groovy, Clojure, etc. > > Unfortunately, since build JDK8_91, if the above language processing > instruction is included within an FXML document, Nashorn produces FXMLLoader > _null pointer error_ messages during compilation with NetBeans (Windows > Vista). Since JDK8_97, if nashorn.jar is manually included as a separate > library within the application, no null pointer error messages are produced > but we should not have to include a separate jar for FXML scripting. > > On the other hand, with the nashorn.jar manually included, the following > sample button from Oracle's 'Introduction To FXML', works just fine: > > <Button text="Click Me!" onAction="java.lang.System.out.println('You clicked > me!');"/> > This prints "You clicked me!" to the console. > > However, use of the <fx:script> tag to run a second sample from 'Introduction > To FXML' produces multiple error messages: > <fx:script> > importClass(java.lang.System); > function handleButtonAction(event) { > System.out.println('You clicked me!'); > } > </fx:script> > <Button text="Run JavaScript function by clicking" > onAction="handleButtonAction(event);"/> > > The first error message produced is on JavaFX's own 'importClass' method, as > follows: > ReferenceError: "importClass" is not defined in <eval> at line number 2 ... > (I have found no reference where importClass has been deprecated) > > A second error message begins with the following: > Caused by: javax.script.ScriptException: ReferenceError: "handleButtonAction" > is not defined in <eval> at line number 1 at > jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:426) > ... > > Finally, doing a simple JavaFX object method call within FXML produces error > messages on the following: > <Button fx:id="vanish" text="This button should vanish" /> > <Button text="Press to remove the above button" > onAction="vanish.setVisible(false)"/> > > One error message begins like this: > Caused by: javax.script.ScriptException: ReferenceError: "vanish" is not > defined in <eval> at line number 1 at > jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:426) > ... > > I hope you can restore these capabilities soon with Nashorn since they are > central to advanced FXML scripting, and since they apparently worked well > with the other JavaFX JavaScript engine. I was instructed to do a Jira on > this, but I will wait your response first. > > Thank you. > > TAH > > >