JavaFX Script used to be called F3 for Form Follows Function. F3 was primarily developed by Chris Oliver, who became a Sun employee through their acquisition of SeeBeyond Technology Corporationin September 2005. Its name was changed to JavaFX Script, and it became open sourced at JavaOne 2007. JavaFX 1.0 was released on December 4, 2008. On September 10, 2010 Oracle announced at JavaOne that JavaFX Script would be discontinued, although the JavaFX API would be made available to other languages for the Java Virtual Machine. On September 27, 2010 Stephen Chin announced a declarative user-interface language based on the JavaFX Script with enhancements. More recently, the original is now in the process of being resurrected and enhanced.
Features
JavaFX Script was a compiled, statically typed, declarative scripting language for the Java Platform. It provided automatic data-binding, mutation triggers and declarative animation, using an expression language syntax Through its standard JavaFX APIs it supported retained modevector graphics, video playback and standard Swing components. Although F3 began life as an interpreted language, prior to the first preview release JavaFX Script had shifted focus to being predominantly compiled. Interpreted JavaFX Script is still possible, via the JSR 223 'Scripting for Java' bridge. Because it is built on top of the Java Platform, it is easy to use Java classes in JavaFX Script code. Compiled JavaFX Script was able to run on any platform that has a recent Java Runtime installed.
Syntax
Script's declarative syntax for constructing user interfaces contrasts sharply with the more verbose series of method calls required to construct an equivalent interface in Swing directly. Here is a simple Hello world program for JavaFX Script : import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.text.Text; import javafx.scene.text.Font; Stage
It shows the following window/frame : This program can also be written in this way: import javafx.ext.swing.*; var myFrame:SwingFrame = new SwingFrame; var myLabel:Label = new Label; myLabel.text = "Hello World!"; myFrame.width = 200; myFrame.height = 50; myFrame.visible = true; myFrame.content = myLabel;