Jump to content

JavaFX: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎History: excessive subheaders
lots of section and syntax cleanup
Line 1: Line 1:
{{short description|Java software platform for GUI}}
{{short description|Java software platform for GUI}}
{{Infobox software
{{Infobox software
| name = JavaFX
| name = JavaFX
| logo = JavaFX Logo.png
| logo = JavaFX Logo.png
| developer = [[Sun Microsystems]] (now acquired by [[Oracle Corporation]])
| developer = [[Sun Microsystems]] (now acquired by [[Oracle Corporation]])
| released = {{Start date and age|2008|12|04}}
| released = {{Start date and age|2008|12|04}}
| latest release version = 14
| latest release version = 14
| latest release date = {{Start date and age|2020|03|11}}<ref>https://github.com/openjdk/jfx/blob/9db2ff258fde2a60b1494857e2cacbf76791f4aa/doc-files/release-notes-14.md</ref>
| latest release date = {{Start date and age|2020|03|11}}<ref>https://github.com/openjdk/jfx/blob/9db2ff258fde2a60b1494857e2cacbf76791f4aa/doc-files/release-notes-14.md</ref>
| latest preview version =
| latest preview version =
| latest preview date =
| latest preview date =
| operating system = [[Java virtual machine|Java Runtime Environment]]
| operating system = [[Java virtual machine|Java Runtime Environment]]
| platform = [[Cross-platform]]
| platform = [[Cross-platform]]
| language = [[Java (programming language)|Java]]
| language = [[Java (programming language)|Java]]
| genre = [[Application framework]]
| genre = [[Application framework]]
| license = [[EULA]], parts under [[GNU General Public License|GPL]]+[[GPL linking exception|linking exception]],<ref name="openJFX">{{cite web | url=https://openjdk.java.net/projects/openjfx/ | title=OpenJFX Project | publisher=[[Oracle Corporation]] | accessdate=2011-12-07}}</ref> [[open-source license|open-source]]
| license = [[EULA]], parts under [[GNU General Public License|GPL]]+[[GPL linking exception|linking exception]],<ref name="openJFX">{{ cite web | url=https://openjdk.java.net/projects/openjfx/ | title=OpenJFX Project | publisher=[[Oracle Corporation]] | accessdate=2011-12-07}}</ref> [[open-source license|open-source]]
| website = {{URL|https://wiki.openjdk.java.net/display/OpenJFX/Main}} and {{URL|https://openjfx.io/}}
| website = {{URL|https://wiki.openjdk.java.net/display/OpenJFX/Main}} and {{URL|https://openjfx.io/}}
}}
}}
{{Java platforms}}
{{Java platforms}}


'''JavaFX''' is a [[Computing platform|software platform]] for creating and delivering [[Application software|desktop applications]], as well as [[Rich Internet application|rich Internet applications (RIAs)]] that can run across a wide variety of devices. JavaFX is intended to replace [[Swing (Java)|Swing]] as the standard [[Graphical User Interface|GUI]] library for [[Java Platform, Standard Edition|Java SE]], but both will be included for the foreseeable future.<ref name="FAQs">{{cite web|url=https://www.oracle.com/technetwork/java/javafx/overview/faq-1446554.html |title=JavaFX FAQ |website=Oracle.com |date= |accessdate=2019-09-24}}</ref> JavaFX has support for [[desktop computer]]s and [[web browser]]s on [[Microsoft Windows]], [[Linux]], and [[macOS]].
'''JavaFX''' is a [[Computing platform|software platform]] for creating and delivering [[Application software|desktop applications]], as well as [[Rich Internet application|rich Internet applications (RIAs)]] that can run across a wide variety of devices. JavaFX is intended to replace [[Swing (Java)|Swing]] as the standard [[Graphical User Interface|GUI]] library for [[Java Platform, Standard Edition|Java SE]], but both will be included for the foreseeable future.<ref name="FAQs">{{ cite web|url=https://www.oracle.com/technetwork/java/javafx/overview/faq-1446554.html |title=JavaFX FAQ |website=Oracle.com |date= |accessdate=2019-09-24}}</ref> JavaFX has support for [[desktop computer]]s and [[web browser]]s on [[Microsoft Windows]], [[Linux]], and [[macOS]].


On desktops, JavaFX supports [[Windows Vista]], [[Windows 7]], [[Windows 8]], [[Windows 10]],<ref>{{ cite web|url=https://stackoverflow.com/questions/31786980/javafx-combobox-not-responding-on-windows-10|title=JavaFX ComboBox not responding on Windows 10|website=stackoverflow.com|access-date=2018-05-01}}</ref> [[macOS]] and [[Linux]] operating systems.<ref name="supportedOSes">{{ cite web|url=https://www.oracle.com/technetwork/java/javafx/downloads/supportedconfigurations-1506746.html |title=JavaFX Supported Configurations |website=Oracle.com |date=2014-04-08 |accessdate=2016-08-01}}</ref> Beginning with JavaFX 1.2, [[Oracle Corporation|Oracle]] has released beta versions for [[OpenSolaris]].<ref name="linuxsupport">{{ cite web|url=https://java.sun.com/javafx/1/reference/system-requirements-1-2.html#javafxsdk |title=Oracle Technology Network for Java Developers &#124; Oracle Technology Network &#124; Oracle |website=Java.sun.com |date= |accessdate=2016-08-01}}</ref> On mobile, [[JavaFX Mobile]] 1.x is capable of running on multiple mobile [[operating systems]], including [[Symbian|Symbian OS]], [[Windows Mobile]], and proprietary [[real-time operating system]]s.
Before version 2.0 of JavaFX, developers used a statically typed, declarative language called [[JavaFX Script]] to build JavaFX applications. Because JavaFX Script was compiled to [[Java bytecode]], programmers could also use [[Java Runtime Environment|Java]] code instead. JavaFX applications could run on any desktop that could run [[Java SE]] or on any mobile phone that could run [[Java ME]].{{citation needed|date=January 2018}}


With the release of JDK 11 in 2018, [[Oracle Corporation|Oracle]] has made JavaFX part of the [[OpenJDK]] under the ''OpenJFX'' project,<ref>{{ cite web|url=https://www.oracle.com/technetwork/java/javase/overview/javafx-overview-2158620.html|title=JavaFX Developer Home|website=www.oracle.com|access-date=2019-06-14}}</ref> in order to increase the pace of its development.<ref>{{ cite web|url=https://blogs.oracle.com/java-platform-group/the-future-of-javafx-and-other-java-client-roadmap-updates|title=The Future of JavaFX and Other Java Client Roadmap Updates|last=Smith|first=Donald|date=March 7, 2018}}</ref> Oracle support for JavaFX is also available, for the current long-term version (Java JDK 8), through March 2025.<ref name="oracleSERoadmap">{{ cite web|url=https://www.oracle.com/technetwork/java/java-se-support-roadmap.html|title=Oracle Java SE Support Roadmap|author=<!--Not stated-->|date=2020-05-13|website=Oracle Technology Network|publisher=Oracle|access-date=2020-05-31}}</ref>
[https://docs.oracle.com/javafx/2 JavaFX 2.0] and later is implemented as a "native" Java library, and applications using JavaFX are written in "native" Java code. JavaFX Script has been scrapped by Oracle, but development is being continued in the Visage project.<ref>{{cite web|url=https://code.google.com/p/visage/ |title=Google Code Archive - Long-term storage for Google Code Project Hosting |website=Code.google.com |date= |accessdate=2016-08-01}}</ref> JavaFX 2.x does not support the [[Solaris (operating system)|Solaris operating system]] or [[mobile phone]]s; however, Oracle plans to integrate JavaFX to Java SE Embedded 8, and Java FX for [[ARM architecture|ARM]] processors is in developer preview phase.<ref>{{cite web|url=https://www.oracle.com/technetwork/java/javafx/overview/roadmap-1446331.html |title=Archived copy |accessdate=2012-11-24 |url-status=dead |archiveurl=https://web.archive.org/web/20121201211443/https://www.oracle.com/technetwork/java/javafx/overview/roadmap-1446331.html |archivedate=2012-12-01 }}</ref>


[[Open-source software|Open-source]] JavaFXPorts works for iOS (iPhone and iPad) and Android and embedded ([[Raspberry Pi]]);<ref>{{ cite news|url=https://gluonhq.com/products/mobile/javafxports/|title=JavaFXPorts - Gluon|work=Gluon|access-date=2018-05-01|language=en-US}}</ref> and the related commercial software created under the name "Gluon" supports the same mobile platforms with additional features plus desktop.<ref name="gluonhq.com">{{ cite web | url=https://gluonhq.com/ | title=Rapid Enterprise Mobile Apps: Build, Connect, Manage with Gluon | date=2017-12-16 | accessdate=2017-12-16}}</ref> This allows a single source code base to create applications for the desktop, iOS, and Android devices.
On desktops, JavaFX supports [[Windows Vista]], [[Windows 7]], [[Windows 8]], [[Windows 10]],<ref>{{Cite web|url=https://stackoverflow.com/questions/31786980/javafx-combobox-not-responding-on-windows-10|title=JavaFX ComboBox not responding on Windows 10|website=stackoverflow.com|access-date=2018-05-01}}</ref> [[macOS]] and [[Linux]] operating systems.<ref name="supportedOSes">{{cite web|url=https://www.oracle.com/technetwork/java/javafx/downloads/supportedconfigurations-1506746.html |title=JavaFX Supported Configurations |website=Oracle.com |date=2014-04-08 |accessdate=2016-08-01}}</ref> Beginning with JavaFX 1.2, [[Oracle Corporation|Oracle]] has released beta versions for [[OpenSolaris]].<ref name="linuxsupport">{{cite web|url=https://java.sun.com/javafx/1/reference/system-requirements-1-2.html#javafxsdk |title=Oracle Technology Network for Java Developers &#124; Oracle Technology Network &#124; Oracle |website=Java.sun.com |date= |accessdate=2016-08-01}}</ref> On mobile, [[JavaFX Mobile]] 1.x is capable of running on multiple mobile [[operating systems]], including [[Symbian|Symbian OS]], [[Windows Mobile]], and proprietary [[real-time operating system]]s.


== Features ==
[[Open-source software|Open-source]] JavaFXPorts works for iOS (iPhone and iPad) and Android and embedded ([[Raspberry Pi]]);<ref>{{Cite news|url=https://gluonhq.com/products/mobile/javafxports/|title=JavaFXPorts - Gluon|work=Gluon|access-date=2018-05-01|language=en-US}}</ref> and the related commercial software created under the name "Gluon" supports the same mobile platforms with additional features plus desktop.<ref name="gluonhq.com">{{cite web | url=https://gluonhq.com/ | title=Rapid Enterprise Mobile Apps: Build, Connect, Manage with Gluon | date=2017-12-16 | accessdate=2017-12-16}}</ref> This allows a single source code base to create applications for the desktop, iOS, and Android devices.


With the release of JDK 11 in 2018, [[Oracle Corporation|Oracle]] has made JavaFX part of the [[OpenJDK]] under the '''OpenJFX''' project,<ref>{{Cite web|url=https://www.oracle.com/technetwork/java/javase/overview/javafx-overview-2158620.html|title=JavaFX Developer Home|website=www.oracle.com|access-date=2019-06-14}}</ref> in order to increase the pace of its development.<ref>{{Cite web|url=https://blogs.oracle.com/java-platform-group/the-future-of-javafx-and-other-java-client-roadmap-updates|title=The Future of JavaFX and Other Java Client Roadmap Updates|last=Smith|first=Donald|date=March 7, 2018}}</ref> Oracle support for JavaFX is also available, for the current long-term version (Java JDK 8), through March 2025.<ref name="oracleSERoadmap">{{cite web|url=https://www.oracle.com/technetwork/java/java-se-support-roadmap.html|title=Oracle Java SE Support Roadmap|author=<!--Not stated-->|date=2020-05-13|website=Oracle Technology Network|publisher=Oracle|access-date=2020-05-31}}</ref>

== Technical highlights ==
JavaFX 1.1 was based on the concept of a "common profile" that is intended to span across all devices supported by JavaFX. This approach makes it possible for developers to use a common programming model while building an application targeted for both desktop and mobile devices and to share much of the code, graphics assets and content between desktop and mobile versions. To address the need for tuning applications on a specific class of devices, the JavaFX 1.1 platform includes [[application programming interface|APIs]] that are desktop or mobile-specific. For example, the JavaFX Desktop profile includes [[Swing (Java)|Swing]] and advanced visual effects.
JavaFX 1.1 was based on the concept of a "common profile" that is intended to span across all devices supported by JavaFX. This approach makes it possible for developers to use a common programming model while building an application targeted for both desktop and mobile devices and to share much of the code, graphics assets and content between desktop and mobile versions. To address the need for tuning applications on a specific class of devices, the JavaFX 1.1 platform includes [[application programming interface|APIs]] that are desktop or mobile-specific. For example, the JavaFX Desktop profile includes [[Swing (Java)|Swing]] and advanced visual effects.


Line 39: Line 36:
JavaFX 1.x included a set of plug-ins for Adobe Photoshop and Illustrator that enable advanced graphics to be integrated directly into JavaFX applications. The plug-ins generate JavaFX Script code that preserves the layers and structure of the graphics. Developers can then add animation or effects to the static graphics imported. There is also an SVG graphics converter tool (also known as Media Factory) that allows for importing graphics and previewing assets after the conversion to JavaFX format.
JavaFX 1.x included a set of plug-ins for Adobe Photoshop and Illustrator that enable advanced graphics to be integrated directly into JavaFX applications. The plug-ins generate JavaFX Script code that preserves the layers and structure of the graphics. Developers can then add animation or effects to the static graphics imported. There is also an SVG graphics converter tool (also known as Media Factory) that allows for importing graphics and previewing assets after the conversion to JavaFX format.


Before version 2.0 of JavaFX, developers used a statically typed, declarative language called [[JavaFX Script]] to build JavaFX applications. Because JavaFX Script was compiled to [[Java bytecode]], programmers could also use [[Java Runtime Environment|Java]] code instead. JavaFX applications could run on any desktop that could run [[Java SE]] or on any mobile phone that could run [[Java ME]].{{citation needed|date=January 2018}}
===Web Component===

JavaFX 2.0 and later is implemented as a "native" Java library, and applications using JavaFX are written in "native" Java code. JavaFX Script has been scrapped by Oracle, but development is being continued in the Visage project.<ref>{{ cite web|url=https://code.google.com/p/visage/ |title=Google Code Archive - Long-term storage for Google Code Project Hosting |website=Code.google.com |date= |accessdate=2016-08-01}}</ref> JavaFX 2.x does not support the [[Solaris (operating system)|Solaris operating system]] or [[mobile phone]]s; however, Oracle plans to integrate JavaFX to Java SE Embedded 8, and Java FX for [[ARM architecture|ARM]] processors is in developer preview phase.<ref>{{ cite web|url=https://www.oracle.com/technetwork/java/javafx/overview/roadmap-1446331.html |title=Archived copy |accessdate=2012-11-24 |url-status=dead |archiveurl=https://web.archive.org/web/20121201211443/https://www.oracle.com/technetwork/java/javafx/overview/roadmap-1446331.html |archivedate=2012-12-01 }}</ref>

=== Web Component ===

WebView, the embedded browser component, supports the following HTML5 features:
WebView, the embedded browser component, supports the following HTML5 features:

* [[Canvas element|Canvas]]
* [[Canvas element|Canvas]]
* Media playback
* Media playback
Line 55: Line 58:
* Support for domain names written in national languages
* Support for domain names written in national languages


== Design highlights ==
=== JavaFX Mobile ===
Sun Microsystems licensed a custom [[typeface]] called Amble for use on JavaFX-powered devices. The font family was designed by [[mobile computing|mobile]] [[user interface]] design specialists [[Punchcut]] and is available as part of the JavaFX SDK 1.3 Release.

== JavaFX platform components ==
JavaFX 2.x platform includes the following components:
# The JavaFX [[Software development kit|SDK]]: runtime tools. Graphics, media web services, and rich text libraries. Java FX 1.x also included JavaFX compiler, which is now obsolete as JavaFX user code is written in Java.
# [[NetBeans]] IDE for JavaFX: NetBeans with drag-and-drop palette to add objects with transformations, effects and animations plus a set of samples and best practices. For JavaFX 2 support you need at least NetBeans 7.1.1. For Eclipse users there is a community-supported plugin hosted on e(fx)clipse.
# JavaFX scene builder: This was introduced for Java FX 2.1 and later. A user interface (UI) is created by dragging and dropping controls from a palette. This information is saved as an FXML file, a special XML format.
# Tools and plugins for creative tools (a.k.a. Production Suite): Plugins for [[Adobe Photoshop]] and [[Adobe Illustrator]] that can export graphics assets to [[JavaFX Script]] code, tools to convert [[Scalable Vector Graphics|SVG]] graphics into [[JavaFX Script]] code and preview assets converted to JavaFX from other tools (currently not supported in JavaFX 2.x versions)


==JavaFX Mobile==
JavaFX Mobile was the implementation of the JavaFX platform for [[rich Internet application]]s aimed at [[mobile device]]s. JavaFX Mobile 1.x applications can be developed in the same language, [[JavaFX Script]], as JavaFX 1.x applications for browser or desktop, and using the same tools: JavaFX SDK and the JavaFX Production Suite. This concept makes it possible to share code-base and graphics assets for desktop and mobile applications. Through integration with [[Java ME]], the JavaFX applications have access to capabilities of the underlying handset, such as the [[filesystem]], camera, [[GPS]], [[bluetooth]] or [[accelerometer]].
JavaFX Mobile was the implementation of the JavaFX platform for [[rich Internet application]]s aimed at [[mobile device]]s. JavaFX Mobile 1.x applications can be developed in the same language, [[JavaFX Script]], as JavaFX 1.x applications for browser or desktop, and using the same tools: JavaFX SDK and the JavaFX Production Suite. This concept makes it possible to share code-base and graphics assets for desktop and mobile applications. Through integration with [[Java ME]], the JavaFX applications have access to capabilities of the underlying handset, such as the [[filesystem]], camera, [[GPS]], [[bluetooth]] or [[accelerometer]].


Line 73: Line 67:


Sun planned to enable out-of-the-box support of JavaFX on the devices by working with handset manufacturers and mobile operators to preload the JavaFX Mobile runtime on the handsets. JavaFX Mobile running on an Android was demonstrated at [[JavaOne]] 2008 and selected partnerships (incl. [[LG Electronics]], [[Sony Ericsson]]) were announced at the JavaFX Mobile launch in February, 2009.
Sun planned to enable out-of-the-box support of JavaFX on the devices by working with handset manufacturers and mobile operators to preload the JavaFX Mobile runtime on the handsets. JavaFX Mobile running on an Android was demonstrated at [[JavaOne]] 2008 and selected partnerships (incl. [[LG Electronics]], [[Sony Ericsson]]) were announced at the JavaFX Mobile launch in February, 2009.

== Design ==

Sun Microsystems licensed a custom [[typeface]] called Amble for use on JavaFX-powered devices. The font family was designed by [[mobile computing|mobile]] [[user interface]] design specialists [[Punchcut]] and is available as part of the JavaFX SDK 1.3 Release.

== Components ==

JavaFX 2.x platform includes the following components:

* The JavaFX [[Software development kit|SDK]]: runtime tools. Graphics, media web services, and rich text libraries. Java FX 1.x also included JavaFX compiler, which is now obsolete as JavaFX user code is written in Java.
* [[NetBeans]] IDE for JavaFX: NetBeans with drag-and-drop palette to add objects with transformations, effects and animations plus a set of samples and best practices. For JavaFX 2 support you need at least NetBeans 7.1.1. For Eclipse users there is a community-supported plugin hosted on e(fx)clipse.
* JavaFX scene builder: This was introduced for Java FX 2.1 and later. A user interface (UI) is created by dragging and dropping controls from a palette. This information is saved as an FXML file, a special XML format.
* Tools and plugins for creative tools (a.k.a. Production Suite): Plugins for [[Adobe Photoshop]] and [[Adobe Illustrator]] that can export graphics assets to [[JavaFX Script]] code, tools to convert [[Scalable Vector Graphics|SVG]] graphics into [[JavaFX Script]] code and preview assets converted to JavaFX from other tools (currently not supported in JavaFX 2.x versions)


== History ==
== History ==

JavaFX Script, the scripting component of JavaFX, began life as a project by [[Chris Oliver (software engineer)|Chris Oliver]] called F3.<ref>{{Cite web|url=https://blogs.oracle.com/chrisoliver/entry/f3 |title=F3 ( Chris Oliver's Weblog) |date=2012-01-06 |access-date=2016-08-20 |url-status=bot: unknown |archiveurl=https://web.archive.org/web/20120106124512/http://blogs.oracle.com/chrisoliver/entry/f3 |archivedate=2012-01-06 }}</ref>
=== Early releases ===

JavaFX Script, the scripting component of JavaFX, began life as a project by [[Chris Oliver (software engineer)|Chris Oliver]] called F3.<ref>{{ cite web|url=https://blogs.oracle.com/chrisoliver/entry/f3 |title=F3 ( Chris Oliver's Weblog) |date=2012-01-06 |access-date=2016-08-20 |url-status=bot: unknown |archiveurl=https://web.archive.org/web/20120106124512/http://blogs.oracle.com/chrisoliver/entry/f3 |archivedate=2012-01-06 }}</ref>


[[Sun Microsystems]] first announced JavaFX at the [[JavaOne]] Worldwide Java Developer conference on May 2007.
[[Sun Microsystems]] first announced JavaFX at the [[JavaOne]] Worldwide Java Developer conference on May 2007.
Line 81: Line 91:
In May 2008 Sun Microsystems announced plans to deliver JavaFX for the browser and desktop by the third quarter of 2008, and JavaFX for mobile devices in the second quarter of 2009. Sun also announced a multi-year agreement with [[On2 Technologies]] to bring comprehensive video capabilities to the JavaFX product family using the company's [[TrueMotion]] [[Video codec]]. Since end of July 2008, developers could download a preview of the JavaFX SDK for Windows and Macintosh, as well as the JavaFX plugin for [[NetBeans|NetBeans 6.1]].
In May 2008 Sun Microsystems announced plans to deliver JavaFX for the browser and desktop by the third quarter of 2008, and JavaFX for mobile devices in the second quarter of 2009. Sun also announced a multi-year agreement with [[On2 Technologies]] to bring comprehensive video capabilities to the JavaFX product family using the company's [[TrueMotion]] [[Video codec]]. Since end of July 2008, developers could download a preview of the JavaFX SDK for Windows and Macintosh, as well as the JavaFX plugin for [[NetBeans|NetBeans 6.1]].


Major releases since JavaFX 1.1 have a release name based on a street or neighborhood in [[San Francisco]]. Update releases typically do not have a release name.<ref name="RepositoriesAndReleases">{{cite web | url=https://wiki.openjdk.java.net/display/OpenJFX/Repositories+and+Releases | title=Repositories and Releases | date=2013-06-29 | accessdate=2013-10-18}}</ref>
Major releases since JavaFX 1.1 have a release name based on a street or neighborhood in [[San Francisco]]. Update releases typically do not have a release name.<ref name="RepositoriesAndReleases">{{ cite web | url=https://wiki.openjdk.java.net/display/OpenJFX/Repositories+and+Releases | title=Repositories and Releases | date=2013-06-29 | accessdate=2013-10-18}}</ref>


Oracle announced their intention to stop shipping JavaFX with [[JDK]] 11 and later,<ref>[https://gluonhq.com/gluon-and-javafx/ Gluon and JavaFX]</ref> and it's no longer bundled with the latest version.
Oracle announced their intention to stop shipping JavaFX with [[JDK]] 11 and later,<ref>[https://gluonhq.com/gluon-and-javafx/ Gluon and JavaFX]</ref> and it's no longer bundled with the latest version.
Line 89: Line 99:
JavaFX for mobile development was finally made available as part of the JavaFX 1.1 release (named Franca<ref name="RepositoriesAndReleases" />) announced officially on February 12, 2009.
JavaFX for mobile development was finally made available as part of the JavaFX 1.1 release (named Franca<ref name="RepositoriesAndReleases" />) announced officially on February 12, 2009.


JavaFX 1.2 (named Marina<ref name="RepositoriesAndReleases" />) was released at [[JavaOne]] on June 2, 2009. This release introduced:<ref>{{cite web | url=http://weblogs.java.net/blog/joshy/archive/2009/06/top_5_most_impo.html | title=Top 5 Most Important Features in JavaFX 1.2 | date=2009-06-09 | last=Marinacci | first=Joshua | accessdate=2009-06-12 | archive-url=https://web.archive.org/web/20090613001526/http://weblogs.java.net/blog/joshy/archive/2009/06/top_5_most_impo.html | archive-date=2009-06-13 | url-status=dead }}</ref>
JavaFX 1.2 (named Marina<ref name="RepositoriesAndReleases" />) was released at [[JavaOne]] on June 2, 2009. This release introduced:<ref>{{ cite web | url=http://weblogs.java.net/blog/joshy/archive/2009/06/top_5_most_impo.html | title=Top 5 Most Important Features in JavaFX 1.2 | date=2009-06-09 | last=Marinacci | first=Joshua | accessdate=2009-06-12 | archive-url=https://web.archive.org/web/20090613001526/http://weblogs.java.net/blog/joshy/archive/2009/06/top_5_most_impo.html | archive-date=2009-06-13 | url-status=dead }}</ref>

* Beta support for [[Linux]] and [[Solaris (operating system)|Solaris]]
* Beta support for [[Linux]] and [[Solaris (operating system)|Solaris]]
* Built-in [[GUI widget|controls]] and [[Layout manager|layouts]]
* Built-in [[GUI widget|controls]] and [[Layout manager|layouts]]
Line 98: Line 109:
* Windows Mobile Runtime with Sun Java Wireless Client
* Windows Mobile Runtime with Sun Java Wireless Client


JavaFX 1.3 (named Soma<ref name="RepositoriesAndReleases" />) was released on April 22, 2010. This release introduced:<ref>{{cite web | url=http://blogs.sun.com/javafx/entry/javafx_1_3_released_delivers | title=JavaFX 1.3 Released, Improves User Experiences | date=2010-04-22 | accessdate=2010-04-25 | archive-url=https://web.archive.org/web/20110430161432/http://blogs.sun.com/javafx/entry/javafx_1_3_released_delivers | archive-date=2011-04-30 | url-status=dead }}</ref>
JavaFX 1.3 (named Soma<ref name="RepositoriesAndReleases" />) was released on April 22, 2010. This release introduced:<ref>{{ cite web | url=http://blogs.sun.com/javafx/entry/javafx_1_3_released_delivers | title=JavaFX 1.3 Released, Improves User Experiences | date=2010-04-22 | accessdate=2010-04-25 | archive-url=https://web.archive.org/web/20110430161432/http://blogs.sun.com/javafx/entry/javafx_1_3_released_delivers | archive-date=2011-04-30 | url-status=dead }}</ref>

* Performance improvements
* Performance improvements
* Support of additional platforms
* Support of additional platforms
Line 104: Line 116:


JavaFX 1.3.1 was released on August 21, 2010. This release introduced:
JavaFX 1.3.1 was released on August 21, 2010. This release introduced:

* Quick startup time of JavaFX application
* Quick startup time of JavaFX application
* Custom progress bar for application startup
* Custom progress bar for application startup


JavaFX 2.0 (named Presidio<ref name="RepositoriesAndReleases" />) was released on October 10, 2011. This release introduced:
JavaFX 2.0 (named Presidio<ref name="RepositoriesAndReleases" />) was released on October 10, 2011. This release introduced:

* A new set of Java APIs opening JavaFX capabilities to all Java developers, without the need for them to learn a new scripting language. Java FX Script support was dropped permanently.
* A new set of Java APIs opening JavaFX capabilities to all Java developers, without the need for them to learn a new scripting language. Java FX Script support was dropped permanently.
* Support for high performance lazy binding, binding expressions, bound sequence expressions, and partial bind re-evaluation.
* Support for high performance lazy binding, binding expressions, bound sequence expressions, and partial bind re-evaluation.
Line 118: Line 132:
On May 26, 2011, Oracle released the JavaFX 2.0 Beta. The beta release was only made available for 32 and 64 bit versions of Microsoft Windows XP, Windows Vista and Windows 7. An Early Access version for [[macOS|Mac OS X]] was also available for members of the JavaFX Partner Program at the time, while Linux support was planned for a future release of JavaFX. JavaFX 2.0 was released with only Windows support. Mac OS X support was added with JavaFX 2.1. Linux support was added with JavaFX 2.2.
On May 26, 2011, Oracle released the JavaFX 2.0 Beta. The beta release was only made available for 32 and 64 bit versions of Microsoft Windows XP, Windows Vista and Windows 7. An Early Access version for [[macOS|Mac OS X]] was also available for members of the JavaFX Partner Program at the time, while Linux support was planned for a future release of JavaFX. JavaFX 2.0 was released with only Windows support. Mac OS X support was added with JavaFX 2.1. Linux support was added with JavaFX 2.2.


JavaFX 2.0 makes use of a new declarative XML language called [[FXML]].<ref>{{cite web | url=http://www.zdnet.co.uk/news/application-development/2011/10/06/javafx-20-arrives-and-heads-for-open-source-40094121/ | title = JavaFX 2.0 arrives and heads for open source | last=Meyer|first=David | date = 2011-10-06 | publisher=[[ZDNet]] | quote=''The update introduces a new XML-based markup language called FXML, which is aimed at defining user interfaces. Other scripting languages, such as Groovy, JRuby and Scala, can also be used to write apps in JavaFX 2.0, as can the Java development tools NetBeans and Eclipse.'' | accessdate=2011-10-09}}</ref><ref>{{cite web | url=http://fxexperience.com/wp-content/uploads/2011/08/Introducing-FXML.pdf | title = Introducing FXML | first=Greg | last=Brown | date = 2011-08-15 | accessdate=2011-10-09}}</ref>
JavaFX 2.0 makes use of a new declarative XML language called [[FXML]].<ref>{{ cite web | url=http://www.zdnet.co.uk/news/application-development/2011/10/06/javafx-20-arrives-and-heads-for-open-source-40094121/ | title = JavaFX 2.0 arrives and heads for open source | last=Meyer|first=David | date = 2011-10-06 | publisher=[[ZDNet]] | quote=''The update introduces a new XML-based markup language called FXML, which is aimed at defining user interfaces. Other scripting languages, such as Groovy, JRuby and Scala, can also be used to write apps in JavaFX 2.0, as can the Java development tools NetBeans and Eclipse.'' | accessdate=2011-10-09}}</ref><ref>{{ cite web | url=http://fxexperience.com/wp-content/uploads/2011/08/Introducing-FXML.pdf | title = Introducing FXML | first=Greg | last=Brown | date = 2011-08-15 | accessdate=2011-10-09}}</ref>

On April 27, 2012, Oracle released version 2.1 of JavaFX,<ref name="terrencebarr">{{ cite web|url=http://terrencebarr.wordpress.com/2012/04/27/jdk-7u4-and-javafx-2-1-released-now-also-including-mac-os-x/ |title=JDK 7u4 and JavaFX 2.1 released, now also including Mac OS X &#124; Across the Universe |website=Terrencebarr.wordpress.com |date=2012-04-27 |accessdate=2016-08-01}}</ref> which includes the following main features:<ref>{{ cite web | url=https://docs.oracle.com/javafx/2/release_notes_2-1/jfxpub-release_notes_2-1.htm | title=JavaFX 2.1 Release Notes | publisher=[[Oracle Corporation]] | accessdate=2012-05-05}}</ref>


On April 27, 2012, Oracle released version 2.1 of JavaFX,<ref name="terrencebarr">{{cite web|url=http://terrencebarr.wordpress.com/2012/04/27/jdk-7u4-and-javafx-2-1-released-now-also-including-mac-os-x/ |title=JDK 7u4 and JavaFX 2.1 released, now also including Mac OS X &#124; Across the Universe |website=Terrencebarr.wordpress.com |date=2012-04-27 |accessdate=2016-08-01}}</ref> which includes the following main features:<ref>{{cite web | url=https://docs.oracle.com/javafx/2/release_notes_2-1/jfxpub-release_notes_2-1.htm | title=JavaFX 2.1 Release Notes | publisher=[[Oracle Corporation]] | accessdate=2012-05-05}}</ref>
* First official version for [[macOS|OS X]] (desktop only)
* First official version for [[macOS|OS X]] (desktop only)
* [[H.264/MPEG-4 AVC]] and [[Advanced Audio Coding]] support
* [[H.264/MPEG-4 AVC]] and [[Advanced Audio Coding]] support
Line 127: Line 142:
* Webview component now allows JavaScript to make calls to Java methods
* Webview component now allows JavaScript to make calls to Java methods


On August 14, 2012, Oracle released version 2.2 of JavaFX,<ref name="oracleblog22">{{cite web |url=https://blogs.oracle.com/javafx/entry/what_s_new_in_javafx |title=What's new in JavaFX 2.2 (The JavaFX Blog) |website=Blogs.oracle.com |date= |accessdate=2016-08-01 |archive-url=https://web.archive.org/web/20160821200710/https://blogs.oracle.com/javafx/entry/what_s_new_in_javafx |archive-date=2016-08-21 |url-status=dead }}</ref> which includes the following main features:<ref>{{cite web | url=https://docs.oracle.com/javafx/2/release_notes_2-2/jfxpub-release_notes_2-2.htm | title=JavaFX 2.2 Release Notes | publisher=[[Oracle Corporation]] | accessdate=2012-10-02}}</ref>
On August 14, 2012, Oracle released version 2.2 of JavaFX,<ref name="oracleblog22">{{ cite web |url=https://blogs.oracle.com/javafx/entry/what_s_new_in_javafx |title=What's new in JavaFX 2.2 (The JavaFX Blog) |website=Blogs.oracle.com |date= |accessdate=2016-08-01 |archive-url=https://web.archive.org/web/20160821200710/https://blogs.oracle.com/javafx/entry/what_s_new_in_javafx |archive-date=2016-08-21 |url-status=dead }}</ref> which includes the following main features:<ref>{{ cite web | url=https://docs.oracle.com/javafx/2/release_notes_2-2/jfxpub-release_notes_2-2.htm | title=JavaFX 2.2 Release Notes | publisher=[[Oracle Corporation]] | accessdate=2012-10-02}}</ref>

* Linux support (including plugin and webstart)
* Linux support (including plugin and webstart)
* Canvas
* Canvas
Line 139: Line 155:


As of Oracle Java SE 7 update 6 and Java FX 2.2, JavaFX is bundled to be installed with Oracle Java SE platform.<ref name="FAQs"/>
As of Oracle Java SE 7 update 6 and Java FX 2.2, JavaFX is bundled to be installed with Oracle Java SE platform.<ref name="FAQs"/>

=== Releases after version bump ===


JavaFX is now part of the JRE/JDK for [[Java version history#Java SE 8|Java 8]] (released on March 18, 2014) and has the same numbering, i.e., JavaFX 8.<ref name="FAQs"/>
JavaFX is now part of the JRE/JDK for [[Java version history#Java SE 8|Java 8]] (released on March 18, 2014) and has the same numbering, i.e., JavaFX 8.<ref name="FAQs"/>


JavaFX 8 adds several new features, including:<ref>{{ cite web | url = https://www.oracle.com/technetwork/java/javafx/overview/roadmap-1446331.html | title = JavaFX Roadmap | publisher = [[Oracle Corporation]] | accessdate = 2012-11-24 | url-status = dead | archiveurl = https://web.archive.org/web/20121201211443/https://www.oracle.com/technetwork/java/javafx/overview/roadmap-1446331.html | archivedate = 2012-12-01 }}</ref>
JavaFX 8 adds several new features, including:<ref>{{cite web

|url=https://www.oracle.com/technetwork/java/javafx/overview/roadmap-1446331.html
* Support for 3D graphics<ref>{{ cite web | url=https://mail.openjdk.java.net/pipermail/openjfx-dev/2012-October/003641.html | title=3D Features Planned for Version 8 | publisher=[[Oracle Corporation]] | first=Chien | last=Yang | accessdate=2012-11-24}}</ref><ref>{{ cite web | url=https://wikis.oracle.com/display/OpenJDK/3D+Features | title=3D Features Planned for Version 8 | publisher=[[Oracle Corporation]] | accessdate=2012-11-24}}</ref>
|title=JavaFX Roadmap
|publisher=[[Oracle Corporation]]
|accessdate=2012-11-24
|url-status=dead
|archiveurl=https://web.archive.org/web/20121201211443/https://www.oracle.com/technetwork/java/javafx/overview/roadmap-1446331.html
|archivedate=2012-12-01
}}</ref>
* Support for 3D graphics<ref>{{cite web | url=https://mail.openjdk.java.net/pipermail/openjfx-dev/2012-October/003641.html | title=3D Features Planned for Version 8 | publisher=[[Oracle Corporation]] | first=Chien | last=Yang | accessdate=2012-11-24}}</ref><ref>{{cite web | url=https://wikis.oracle.com/display/OpenJDK/3D+Features | title=3D Features Planned for Version 8 | publisher=[[Oracle Corporation]] | accessdate=2012-11-24}}</ref>
* Sensor support
* Sensor support
* MathML support, with JavaFX 8 Update 192
* MathML support, with JavaFX 8 Update 192
* Printing and rich text support
* Printing and rich text support
* Generic dialog templates via inclusion of ControlsFX to replace JOptionPane as of JavaFX 8u40<ref>{{cite web|url=http://download.java.net/jdk9/jfxdocs/javafx/scene/control/Dialog.html |title=Archived copy |accessdate=2015-01-05 |url-status=dead |archiveurl=https://web.archive.org/web/20150105113138/http://download.java.net/jdk9/jfxdocs/javafx/scene/control/Dialog.html |archivedate=2015-01-05 }}</ref>
* Generic dialog templates via inclusion of ControlsFX to replace JOptionPane as of JavaFX 8u40<ref>{{ cite web|url=http://download.java.net/jdk9/jfxdocs/javafx/scene/control/Dialog.html |title=Archived copy |accessdate=2015-01-05 |url-status=dead |archiveurl=https://web.archive.org/web/20150105113138/http://download.java.net/jdk9/jfxdocs/javafx/scene/control/Dialog.html |archivedate=2015-01-05 }}</ref>


JavaFX 9 features were centered on extracting some useful private APIs from the JavaFX code to make these APIs public:
JavaFX 9 features were centered on extracting some useful private APIs from the JavaFX code to make these APIs public:

* [[JDK Enhancement Proposal|JEP]] 253: Prepare JavaFX UI Controls and CSS APIs for Modularization<ref>{{cite web | url=https://openjdk.java.net/jeps/253 | title=JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization | first=Jonathan | last=Giles | publisher=[[Oracle Corporation]] | date=2015-01-14 | accessdate=2016-01-17}}</ref>
* [[JDK Enhancement Proposal|JEP]] 253: Prepare JavaFX UI Controls and CSS APIs for Modularization<ref>{{ cite web | url=https://openjdk.java.net/jeps/253 | title=JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization | first=Jonathan | last=Giles | publisher=[[Oracle Corporation]] | date=2015-01-14 | accessdate=2016-01-17}}</ref>


JavaFX 11 was first shipped in September 2018.
JavaFX 11 was first shipped in September 2018.

* JavaFX 11.0.2 is the latest public release of JavaFX 11.<ref>{{Cite web|title=javafxports/openjdk-jfx|url=https://github.com/javafxports/openjdk-jfx|access-date=2020-07-20|website=GitHub|language=en}}</ref>
* JavaFX 11.0.2 is the latest public release of JavaFX 11.<ref>{{ cite web|title=javafxports/openjdk-jfx|url=https://github.com/javafxports/openjdk-jfx|access-date=2020-07-20|website=GitHub|language=en}}</ref>
* JavaFX 11.0.3 is the latest release of JavaFX 11 for those with a long-term support contract.
* JavaFX 11.0.3 is the latest release of JavaFX 11 for those with a long-term support contract.
* MathML support, with JavaFX 11
* MathML support, with JavaFX 11
Line 167: Line 180:


JavaFX 12 was first shipped in March 2019.
JavaFX 12 was first shipped in March 2019.

* JavaFX 12.0.1.<ref>{{Cite web|title=javafxports/openjdk-jfx|url=https://github.com/javafxports/openjdk-jfx|access-date=2020-07-20|website=GitHub|language=en}}</ref>
* JavaFX 12.0.1.<ref>{{ cite web|title=javafxports/openjdk-jfx|url=https://github.com/javafxports/openjdk-jfx|access-date=2020-07-20|website=GitHub|language=en}}</ref>


JavaFX 13 shipped in September 2019.
JavaFX 13 shipped in September 2019.
Line 173: Line 187:
JavaFX 14 is the latest JavaFX release available now.
JavaFX 14 is the latest JavaFX release available now.


===Future work===
=== Future work ===
Oracle also announced in November 2012 the open sourcing of '''Decora''', a [[Domain-specific language|DSL Shader language]] for JavaFX allowing to generate [[Shader]]s for [[OpenGL]] and [[Microsoft Direct3D|Direct3D]].<ref>{{cite web | url=https://mail.openjdk.java.net/pipermail/openjfx-dev/2012-November/004292.html | title=Open Sourcing: decora-compiler | first=Richard | last=Bair | publisher=[[Oracle Corporation]] | date=2012-11-06 | quote=''I'm going to be open sourcing today another one of our projects called decora-compiler. We have our own DSL for shader languages called Decora. What we do is generate shaders for OpenGL and D3D from this language. We also generate Java code and SSE native code. For some shaders, we ended up generating them and then hand-tweaking them from there'' | accessdate=2012-11-24}}</ref>


Oracle also announced in November 2012 the open sourcing of '''Decora''', a [[Domain-specific language|DSL Shader language]] for JavaFX allowing to generate [[Shader]]s for [[OpenGL]] and [[Microsoft Direct3D|Direct3D]].<ref>{{ cite web | url=https://mail.openjdk.java.net/pipermail/openjfx-dev/2012-November/004292.html | title=Open Sourcing: decora-compiler | first=Richard | last=Bair | publisher=[[Oracle Corporation]] | date=2012-11-06 | quote=''I'm going to be open sourcing today another one of our projects called decora-compiler. We have our own DSL for shader languages called Decora. What we do is generate shaders for OpenGL and D3D from this language. We also generate Java code and SSE native code. For some shaders, we ended up generating them and then hand-tweaking them from there'' | accessdate=2012-11-24}}</ref>
Oracle wrote in its Client Support Roadmap that JavaFX new fixes will continue to be supported on Java SE 8 through March 2025<ref name="oracleSERoadmap">{{cite web|url=https://www.oracle.com/technetwork/java/java-se-support-roadmap.html|title=Oracle Java SE Support Roadmap|author=<!--Not stated-->|date=2020-05-13|website=Oracle Technology Network|publisher=Oracle|access-date=2020-05-31}}</ref>. Previously, Oracle announced that they are "working with interested third parties to make it easier to build and maintain JavaFX as a separately distributable open-source module." JavaFX will continue to be supported in the future by the company Gluon as a downloadable module in addition to the JDK.<ref>[https://gluonhq.com/products/javafx/ JavaFX]</ref>


Oracle wrote in its Client Support Roadmap that JavaFX new fixes will continue to be supported on Java SE 8 through March 2025<ref name="oracleSERoadmap">{{ cite web|url=https://www.oracle.com/technetwork/java/java-se-support-roadmap.html|title=Oracle Java SE Support Roadmap|author=<!--Not stated-->|date=2020-05-13|website=Oracle Technology Network|publisher=Oracle|access-date=2020-05-31}}</ref>. Previously, Oracle announced that they are "working with interested third parties to make it easier to build and maintain JavaFX as a separately distributable open-source module." JavaFX will continue to be supported in the future by the company Gluon as a downloadable module in addition to the JDK.<ref>[https://gluonhq.com/products/javafx/ JavaFX]</ref>
== Platforms ==

As of March 2014 JavaFX is deployed on [[Microsoft Windows]], [[macOS|OS X]], and [[Linux]].<ref>{{cite web | url=https://www.oracle.com/technetwork/java/javafx/downloads/index.html | title= General Availability Download | publisher=[[Oracle Corporation]] | accessdate=2013-01-05}}</ref> Oracle has an internal port of JavaFX on [[iOS]] and [[Android (operating system)|Android]].<ref>{{cite web | url=https://mail.openjdk.java.net/pipermail/openjfx-dev/2012-December/004670.html | title= Porting JavaFX | first=Richard | last=Bair | date=2012-12-03 | website=Mail.openjfx.dev.java.net | accessdate=2013-01-05}}</ref><ref>{{cite web | url=https://mail.openjdk.java.net/pipermail/openjfx-dev/2012-December/004787.html | title= Survey: JavaFX on tablets and mobile devices | first=Tomas | last=Brandalik | date=2012-12-07 | accessdate=2013-01-05}}</ref> Support for ARM is available starting with JavaFX 8<ref name="docs.oracle.com">{{cite web|url=https://docs.oracle.com/javase/8/javafx/get-started-tutorial/jfx-overview.htm |title=1 JavaFX Overview (Release 8) |website=Docs.oracle.com |date= |accessdate=2016-08-01}}</ref> On February 11, 2013, Richard Bair, chief architect of the Client Java Platform at Oracle, announced that Oracle would open-source the iOS and Android implementations of its JavaFX platform in the next two months.<ref>{{cite web | url=http://fxexperience.com/2013/02/february-open-source-update/ | title=February Open Source Update | first=Richard | last=Bair | publisher=[[Oracle Corporation]] | date=2013-02-16 | quote=''We’re also going to open source our iOS and Android implementations over the next couple months.'' | accessdate=2013-02-13}}</ref><ref>{{cite web | url=http://www.infoq.com/news/2013/02/javafx-ios-android | title=Oracle Announces Open Source JavaFX for iOS and Android | publisher=Infoq.com | date=2013-02-13 | quote=''Oracle has announced plans to open source the iOS and Android implementations of its JavaFX UI platform "over the next couple of months", allowing developers to use the technology to write cross-platform applications for those platforms for the first time.'' | accessdate=2013-02-16}}</ref>
== Availability ==
Starting with version 8u33 of JDK for ARM, support for JavaFX Embedded has been removed.<ref>{{cite web | url=https://www.oracle.com/technetwork/java/javase/jdk-8u33-arm-relnotes-2406696.html | title=JDK for ARM 8u33 release notes | publisher=[[Oracle Corporation]] | date=2013-02-16 | quote=''Starting with JDK 8u33, JavaFX Embedded is removed from the ARM bundle and is not supported.'' | accessdate=2015-03-09}}</ref>

Support will continue for x86-based architectures.<ref>{{cite web | url=https://www.raspberrypi.org/forums/viewtopic.php?f=81&t=97367&p=678791#p678791 | title=Raspberry Pi's mailing list: Where's JavaFX in recent Java 8u33 for the ARM ? | first=Dalibor | last=Topic | quote=''JavaFX continues to be provided as a fully supported part of the Oracle JDK 8 product on x86 platforms (Windows, Linux, Mac).'' | date=2013-01-27 | accessdate=2015-03-09}}</ref>
As of March 2014 JavaFX is deployed on [[Microsoft Windows]], [[macOS|OS X]], and [[Linux]].<ref>{{ cite web | url=https://www.oracle.com/technetwork/java/javafx/downloads/index.html | title= General Availability Download | publisher=[[Oracle Corporation]] | accessdate=2013-01-05}}</ref> Oracle has an internal port of JavaFX on [[iOS]] and [[Android (operating system)|Android]].<ref>{{ cite web | url=https://mail.openjdk.java.net/pipermail/openjfx-dev/2012-December/004670.html | title= Porting JavaFX | first=Richard | last=Bair | date=2012-12-03 | website=Mail.openjfx.dev.java.net | accessdate=2013-01-05}}</ref><ref>{{ cite web | url=https://mail.openjdk.java.net/pipermail/openjfx-dev/2012-December/004787.html | title= Survey: JavaFX on tablets and mobile devices | first=Tomas | last=Brandalik | date=2012-12-07 | accessdate=2013-01-05}}</ref> Support for ARM is available starting with JavaFX 8<ref name="docs.oracle.com">{{ cite web|url=https://docs.oracle.com/javase/8/javafx/get-started-tutorial/jfx-overview.htm |title=1 JavaFX Overview (Release 8) |website=Docs.oracle.com |date= |accessdate=2016-08-01}}</ref> On February 11, 2013, Richard Bair, chief architect of the Client Java Platform at Oracle, announced that Oracle would open-source the iOS and Android implementations of its JavaFX platform in the next two months.<ref>{{ cite web | url=http://fxexperience.com/2013/02/february-open-source-update/ | title=February Open Source Update | first=Richard | last=Bair | publisher=[[Oracle Corporation]] | date=2013-02-16 | quote=''We’re also going to open source our iOS and Android implementations over the next couple months.'' | accessdate=2013-02-13}}</ref><ref>{{ cite web | url=http://www.infoq.com/news/2013/02/javafx-ios-android | title=Oracle Announces Open Source JavaFX for iOS and Android | publisher=Infoq.com | date=2013-02-13 | quote=''Oracle has announced plans to open source the iOS and Android implementations of its JavaFX UI platform "over the next couple of months", allowing developers to use the technology to write cross-platform applications for those platforms for the first time.'' | accessdate=2013-02-16}}</ref>

Starting with version 8u33 of JDK for ARM, support for JavaFX Embedded has been removed.<ref>{{ cite web | url=https://www.oracle.com/technetwork/java/javase/jdk-8u33-arm-relnotes-2406696.html | title=JDK for ARM 8u33 release notes | publisher=[[Oracle Corporation]] | date=2013-02-16 | quote=''Starting with JDK 8u33, JavaFX Embedded is removed from the ARM bundle and is not supported.'' | accessdate=2015-03-09}}</ref>

Support will continue for x86-based architectures.<ref>{{ cite web | url=https://www.raspberrypi.org/forums/viewtopic.php?f=81&t=97367&p=678791#p678791 | title=Raspberry Pi's mailing list: Where's JavaFX in recent Java 8u33 for the ARM ? | first=Dalibor | last=Topic | quote=''JavaFX continues to be provided as a fully supported part of the Oracle JDK 8 product on x86 platforms (Windows, Linux, Mac).'' | date=2013-01-27 | accessdate=2015-03-09}}</ref>


A commercial port of JavaFX for Android and iOS has been created under the name "Gluon".<ref name="gluonhq.com"/>
A commercial port of JavaFX for Android and iOS has been created under the name "Gluon".<ref name="gluonhq.com"/>


== License ==
== License ==

There are various licenses for the modules that compose the JavaFX runtime:
There are various licenses for the modules that compose the JavaFX runtime:

* Parts of the core JavaFX runtime are still [[proprietary software]] and its code has not yet been released to the public,<ref name="javaFX">{{cite web | url=http://openjfx.dev.java.net/downloads.html | title=JavaFX Downloads | website=Openjfx.dev.java.net | accessdate=2008-06-07 }}{{Dead link|date=February 2020 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> however developers and executives behind the technology are moving toward a full opening of the code,<ref>{{cite web|url=http://fxexperience.com/2013/02/february-open-source-update/|title=February Open Source Update|date=2013-02-11|website=JavaFX News, Demos and Insight // FX Experience|language=en-US|access-date=2016-05-25}}</ref>
* The JavaFX compiler<ref name="jfxcompiler">{{cite web | url=http://openjfx-compiler.dev.java.net/ | title=OpenJFX Compiler Project | website=Openjfx-compiler.dev.java.net | accessdate=2008-06-07 }}{{Dead link|date=February 2020 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> and an older version of the [[2D computer graphics|2D]] [[Scene graph]]<ref name="scenegraph">{{cite web | url=http://scenegraph.dev.java.net/ | archive-url=https://archive.today/20120306021341/http://scenegraph.dev.java.net/ | url-status=dead | archive-date=2012-03-06 | title=Project Scene Graph home | website=Scenegraph.dev.java.net | accessdate=2008-06-07 }}</ref> are released under a [[GPL v2]] license,
* Parts of the core JavaFX runtime are still [[proprietary software]] and its code has not yet been released to the public,<ref name="javaFX">{{ cite web | url=http://openjfx.dev.java.net/downloads.html | title=JavaFX Downloads | website=Openjfx.dev.java.net | accessdate=2008-06-07 }}{{Dead link|date=February 2020 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> however developers and executives behind the technology are moving toward a full opening of the code,<ref>{{ cite web|url=http://fxexperience.com/2013/02/february-open-source-update/|title=February Open Source Update|date=2013-02-11|website=JavaFX News, Demos and Insight // FX Experience|language=en-US|access-date=2016-05-25}}</ref>
* The JavaFX compiler<ref name="jfxcompiler">{{ cite web | url=http://openjfx-compiler.dev.java.net/ | title=OpenJFX Compiler Project | website=Openjfx-compiler.dev.java.net | accessdate=2008-06-07 }}{{Dead link|date=February 2020 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> and an older version of the [[2D computer graphics|2D]] [[Scene graph]]<ref name="scenegraph">{{ cite web | url=http://scenegraph.dev.java.net/ | archive-url=https://archive.today/20120306021341/http://scenegraph.dev.java.net/ | url-status=dead | archive-date=2012-03-06 | title=Project Scene Graph home | website=Scenegraph.dev.java.net | accessdate=2008-06-07 }}</ref> are released under a [[GPL v2]] license,
* The [[NetBeans]] plugin for JavaFX is dual licensed under [[GPL v2]] and [[Common Development and Distribution License|CDDL]].<ref name="javaFX" />
* The [[NetBeans]] plugin for JavaFX is dual licensed under [[GPL v2]] and [[Common Development and Distribution License|CDDL]].<ref name="javaFX" />


During development, [[Sun microsystems|Sun]] explained they will roll out their strategy for the JavaFX licensing model for JavaFX first release.<ref name="javaFXFAQ">{{cite web | url=http://java.sun.com/javafx/faqs.jsp#2 | title=Will JavaFX technology be released in open source? | quote=''Sun will continue to engage the OpenJFX community as we release JavaFX products. This fall we will be rolling out our open source strategy for JavaFX technology concurrent with the release of version 1 of JavaFX Desktop'' | accessdate=2008-06-07}}</ref> After the release in 2008, [[Jeet Kaul]], Sun's [[Vice president]] for Client Software, explained that they will soon publish a specification for JavaFX and its associated [[file format]]s, and will continue to open-source the JavaFX runtime, and decouple this core from the proprietary parts licensed by external parties.<ref>{{cite web|url=http://blogs.sun.com/meetjeet/entry/javafx_the_road_ahead |title=JavaFX&nbsp;— the road ahead |date=2008-12-16 |last=Kaul |first=Jeet |quote=''Sun is committed to open standards and open source, and specifications are coming soon(…)There are some dependencies on licensed code that cannot be open sourced. We are working towards decoupling the dependencies so that the non-proprietary portions can be open sourced. Currently the JavaFX compiler, Netbeans JavaFX plugin and Eclipse JavaFX plugin are already being developed in the open source. The scene graph is out in the open. We will put the core runtime out in the open over time.'' |accessdate=2009-01-03 |url-status=dead |archiveurl=https://web.archive.org/web/20081217162601/http://blogs.sun.com/meetjeet/entry/javafx_the_road_ahead |archivedate=December 17, 2008 }}</ref>
During development, [[Sun microsystems|Sun]] explained they will roll out their strategy for the JavaFX licensing model for JavaFX first release.<ref name="javaFXFAQ">{{ cite web | url=http://java.sun.com/javafx/faqs.jsp#2 | title=Will JavaFX technology be released in open source? | quote=''Sun will continue to engage the OpenJFX community as we release JavaFX products. This fall we will be rolling out our open source strategy for JavaFX technology concurrent with the release of version 1 of JavaFX Desktop'' | accessdate=2008-06-07}}</ref> After the release in 2008, [[Jeet Kaul]], Sun's [[Vice president]] for Client Software, explained that they will soon publish a specification for JavaFX and its associated [[file format]]s, and will continue to open-source the JavaFX runtime, and decouple this core from the proprietary parts licensed by external parties.<ref>{{ cite web|url=http://blogs.sun.com/meetjeet/entry/javafx_the_road_ahead |title=JavaFX&nbsp;— the road ahead |date=2008-12-16 |last=Kaul |first=Jeet |quote=''Sun is committed to open standards and open source, and specifications are coming soon(…)There are some dependencies on licensed code that cannot be open sourced. We are working towards decoupling the dependencies so that the non-proprietary portions can be open sourced. Currently the JavaFX compiler, Netbeans JavaFX plugin and Eclipse JavaFX plugin are already being developed in the open source. The scene graph is out in the open. We will put the core runtime out in the open over time.'' |accessdate=2009-01-03 |url-status=dead |archiveurl=https://web.archive.org/web/20081217162601/http://blogs.sun.com/meetjeet/entry/javafx_the_road_ahead |archivedate=December 17, 2008 }}</ref>


At [[JavaOne]] 2011, [[Oracle Corporation]] announced that JavaFX 2.0 would become open-source.<ref>{{cite web | url=http://www.zdnet.co.uk/news/application-development/2011/10/06/javafx-20-arrives-and-heads-for-open-source-40094121/ | title = JavaFX 2.0 arrives and heads for open source | last=Meyer|first=David | date = 2011-10-06 | publisher=[[ZDNet]] | quote=''At the event, Oracle also announced plans to make the JavaFX platform open source. It has submitted a proposal to the OpenJDK Community, and its first contribution will include the JavaFX user interface controls and related libraries. "Other JavaFX components are planned to follow in multiple phases," the company said.'' | accessdate=2011-10-09}}</ref> Since December 2011, Oracle began to open-source the JavaFX code under the [[GNU General Public License|GPL]]+[[GPL linking exception|linking exception]].<ref name="openJFX"/><ref>{{cite web | url=https://forums.oracle.com/forums/thread.jspa?messageID=10017677 | title = Call for patches | first=Richard | last=Bair | date = 2011-12-02 | publisher=[[Oracle Corporation]] | quote=''Hey guys, Just a note to indicate that the UI controls have been open sourced into openjdk'' | accessdate=2011-12-07}}{{unreliable source?|date=May 2012}}</ref>
At [[JavaOne]] 2011, [[Oracle Corporation]] announced that JavaFX 2.0 would become open-source.<ref>{{ cite web | url=http://www.zdnet.co.uk/news/application-development/2011/10/06/javafx-20-arrives-and-heads-for-open-source-40094121/ | title = JavaFX 2.0 arrives and heads for open source | last=Meyer|first=David | date = 2011-10-06 | publisher=[[ZDNet]] | quote=''At the event, Oracle also announced plans to make the JavaFX platform open source. It has submitted a proposal to the OpenJDK Community, and its first contribution will include the JavaFX user interface controls and related libraries. "Other JavaFX components are planned to follow in multiple phases," the company said.'' | accessdate=2011-10-09}}</ref> Since December 2011, Oracle began to open-source the JavaFX code under the [[GNU General Public License|GPL]]+[[GPL linking exception|linking exception]].<ref name="openJFX"/><ref>{{ cite web | url=https://forums.oracle.com/forums/thread.jspa?messageID=10017677 | title = Call for patches | first=Richard | last=Bair | date = 2011-12-02 | publisher=[[Oracle Corporation]] | quote=''Hey guys, Just a note to indicate that the UI controls have been open sourced into openjdk'' | accessdate=2011-12-07}}{{unreliable source?|date=May 2012}}</ref>

In December 2012, new portions of the JavaFX source code were open-sourced by Oracle:<ref>{{ cite web | url=https://mail.openjdk.java.net/pipermail/openjfx-dev/2012-December/005007.html | title = More of JavaFX open-sourced | first=Pavel | last=Safrata | date = 2012-12-18 | publisher=[[Oracle Corporation]] | quote=''Hello everyone, today we open-sourced another part of JavaFX. Following projects are now part of OpenJFX'' | accessdate=2013-01-05}}</ref>


In December 2012, new portions of the JavaFX source code were open-sourced by Oracle:<ref>{{cite web | url=https://mail.openjdk.java.net/pipermail/openjfx-dev/2012-December/005007.html | title = More of JavaFX open-sourced | first=Pavel | last=Safrata | date = 2012-12-18 | publisher=[[Oracle Corporation]] | quote=''Hello everyone, today we open-sourced another part of JavaFX. Following projects are now part of OpenJFX'' | accessdate=2013-01-05}}</ref>
* the animations and timelines classes
* the animations and timelines classes
* the event delivery mechanism and other various core classes
* the event delivery mechanism and other various core classes
Line 203: Line 224:
* the logging support
* the logging support


==See also==
== See also ==
{{Portal|Computer programming}}
{{Portal|Computer programming}}

* [[Curl (programming language)]], a declarative programming language for web applications
* [[Curl (programming language)]]
* [[JavaFX Script]]
* [[JavaFX Script]]
* [[Standard Widget Toolkit]]
* [[Standard Widget Toolkit]]


==References==
== References ==
{{Reflist|30em}}


{{refs}}
==Bibliography==
{{Refbegin}}
* {{Cite book
| first1 = Johan
| last1 = Vos
| first2 = Weiqi
| last2 = Gao
| first3 = Stephen
| last3 = Chin
| first4 = Dean
| last4 = Iverson
| first5 = James L.
| last5 = Weaver
| date = July 27, 2014
| title = Pro JavaFX 8: A Definitive Guide to Building Desktop, Mobile, and Embedded Java Clients
| publisher = [[Apress]]
| page = 616
| isbn = 978-1-4302-6574-0
| url = https://www.apress.com/9781430265740
}}
* {{Cite book
| first1 = James L.
| last1 = Weaver
| first2 = Weiqi
| last2 = Gao
| first3 = Stephen
| last3 = Chin
| first4 = Dean
| last4 = Iverson
| first5 = Johan
| last5 = Vos
| date = March 6, 2012
| title = Pro JavaFX 2: A Definitive Guide to Rich Clients with Java Technology
| publisher = [[Apress]]
| page = 640
| isbn = 978-1-4302-6872-7
| url = http://www.apress.com/9781430268727
}}
* {{Cite book
| first1 = Hendrik
| last1 = Ebbers
| date = July 7, 2014
| title = Mastering JavaFX 8 Controls
| publisher = [[McGraw-Hill Education]]
| page = 336
| isbn = 978-0071833776
| url = http://www.guigarage.com/javafx-book/
}}
* {{Cite book
| first1 = Vladimir
| last1 = Vivien
| date = August 25, 2010
| title = JavaFX 1.2 Application Development Cookbook
| publisher = [[Packt Publishing]]
| page = 332
| isbn = 1-84719-894-5
| url = https://www.packtpub.com/javafx-1-2-application-development-cookbook/book
}}
* {{Cite book
| first1 = Lucas
| last1 = Jordan
| date = December 17, 2009
| title = JavaFX Special Effects: Taking Java RIA to the Extreme with Animation, Multimedia, and Game Elements
| publisher = [[Apress]]
| page = 300
| isbn = 1-4302-2623-4
| url = http://www.apress.com/book/view/9781430226239
}}
* {{Cite book
| first1 = Simon
| last1 = Morris
| date = November 23, 2009
| title = JavaFX in Action
| publisher = [[Manning Publications|Manning]]
| page = 375
| isbn = 1-933988-99-1
| url = http://www.jfxia.com/
}}
* {{Cite book
| first1 = Kim
| last1 = Topley
| date = October 12, 2009
| title = JavaFX Developer's Guide
| publisher = [[Addison-Wesley Professional]]
| page = 640
| isbn = 0-321-60165-3
| url = http://www.informit.com/store/product.aspx?isbn=0321648978
}}
* {{Cite book
| first1 = James L.
| last1 = Weaver
| first2 = Weiqi
| last2 = Gao
| first3 = Stephen
| last3 = Chin
| first4 = Dean
| last4 = Iverson
| date = June 22, 2009
| title = Pro JavaFX Platform: Script, Desktop and Mobile RIA with Java Technology
| publisher = [[Apress]]
| page = 500
| isbn = 1-4302-1875-4
| url = http://www.apress.com/book/view/1430218754
}}
* {{Cite book
| first1 = Jim
| last1 = Clarke
| first2 = Jim
| last2 = Connors
| first3 = Eric
| last3 = J. Bruno
| date = June 15, 2009
| title = JavaFX: Developing Rich Internet Applications
| publisher = [[Prentice Hall]]
| page = 384
| isbn = 0-13-701287-X
| url = http://www.informit.com/store/product.aspx?isbn=0137013531
}}
* {{Cite book
| first1 = Gail
| last1 = Anderson
| first2 = Paul
| last2 = Anderson
| date = June 15, 2009
| title = Essential JavaFX
| publisher = [[Prentice Hall]]
| page = 360
| isbn = 0-13-704279-5
| url = http://www.informit.com/store/product.aspx?isbn=0137042795
}}
* {{Cite book
| first = James L.
| last = Weaver
| date = May 4, 2009
| title = JavaFX Script: Dynamic Java Scripting for Rich Internet/Client-side Applications
| publisher = [[Apress]]
| page = 200
| isbn = 1-59059-945-4
| url = http://www.apress.com/book/view/1590599454
}}
{{Refend}}


== External links ==
== Bibliography ==
* {{Official website|https://openjfx.io}}
* [https://coderslegacy.com/java/javafx-tutorial/ JavaFX Tutorial]
{{Prone to spam|date=December 2018}}
{{Z148}}<!-- {{No more links}}


{{refbegin}}
Please be cautious adding more external links.
* {{ cite book | first1 = Johan | last1 = Vos | first2 = Weiqi | last2 = Gao | first3 = Stephen | last3 = Chin | first4 = Dean | last4 = Iverson | first5 = James L. | last5 = Weaver | date = July 27, 2014 | title = Pro JavaFX 8: A Definitive Guide to Building Desktop, Mobile, and Embedded Java Clients | publisher = [[Apress]] | page = 616 | isbn = 978-1-4302-6574-0 | url = https://www.apress.com/9781430265740 }}
* {{ cite book | first1 = James L. | last1 = Weaver | first2 = Weiqi | last2 = Gao | first3 = Stephen | last3 = Chin | first4 = Dean | last4 = Iverson | first5 = Johan | last5 = Vos | date = March 6, 2012 | title = Pro JavaFX 2: A Definitive Guide to Rich Clients with Java Technology | publisher = [[Apress]] | page = 640 | isbn = 978-1-4302-6872-7 | url = http://www.apress.com/9781430268727 }}
* {{ cite book | first1 = Hendrik | last1 = Ebbers | date = July 7, 2014 | title = Mastering JavaFX 8 Controls | publisher = [[McGraw-Hill Education]] | page = 336 | isbn = 978-0071833776 | url = http://www.guigarage.com/javafx-book/ }}
* {{ cite book | first1 = Vladimir | last1 = Vivien | date = August 25, 2010 | title = JavaFX 1.2 Application Development Cookbook | publisher = [[Packt Publishing]] | page = 332 | isbn = 1-84719-894-5 | url = https://www.packtpub.com/javafx-1-2-application-development-cookbook/book }}
* {{ cite book | first1 = Lucas | last1 = Jordan | date = December 17, 2009 | title = JavaFX Special Effects: Taking Java RIA to the Extreme with Animation, Multimedia, and Game Elements | publisher = [[Apress]] | page = 300 | isbn = 1-4302-2623-4 | url = http://www.apress.com/book/view/9781430226239 }}
* {{ cite book | first1 = Simon | last1 = Morris | date = November 23, 2009 | title = JavaFX in Action | publisher = [[Manning Publications|Manning]] | page = 375 | isbn = 1-933988-99-1 | url = http://www.jfxia.com/ }}
* {{ cite book | first1 = Kim | last1 = Topley | date = October 12, 2009 | title = JavaFX Developer's Guide | publisher = [[Addison-Wesley Professional]] | page = 640 | isbn = 0-321-60165-3 | url = http://www.informit.com/store/product.aspx?isbn=0321648978 }}
* {{ cite book | first1 = James L. | last1 = Weaver | first2 = Weiqi | last2 = Gao | first3 = Stephen | last3 = Chin | first4 = Dean | last4 = Iverson | date = June 22, 2009 | title = Pro JavaFX Platform: Script, Desktop and Mobile RIA with Java Technology | publisher = [[Apress]] | page = 500 | isbn = 1-4302-1875-4 | url = http://www.apress.com/book/view/1430218754 }}
* {{ cite book | first1 = Jim | last1 = Clarke | first2 = Jim | last2 = Connors | first3 = Eric | last3 = J. Bruno | date = June 15, 2009 | title = JavaFX: Developing Rich Internet Applications | publisher = [[Prentice Hall]] | page = 384 | isbn = 0-13-701287-X | url = http://www.informit.com/store/product.aspx?isbn=0137013531 }}
* {{ cite book | first1 = Gail | last1 = Anderson | first2 = Paul | last2 = Anderson | date = June 15, 2009 | title = Essential JavaFX | publisher = [[Prentice Hall]] | page = 360 | isbn = 0-13-704279-5 | url = http://www.informit.com/store/product.aspx?isbn=0137042795 }}
* {{ cite book | first = James L. | last = Weaver | date = May 4, 2009 | title = JavaFX Script: Dynamic Java Scripting for Rich Internet/Client-side Applications | publisher = [[Apress]] | page = 200 | isbn = 1-59059-945-4 | url = http://www.apress.com/book/view/1590599454 }}
{{refend}}


== External links ==
Wikipedia is not a collection of links and should not be used for advertising.


* {{official|https://openjfx.io/}}
Excessive or inappropriate links will be removed.
* [https://coderslegacy.com/java/javafx-tutorial/ JavaFX Tutorial]

See [[Wikipedia:External links]] and [[Wikipedia:Spam]] for details.

If there are already suitable links, propose additions or replacements on
the article's talk page.

-->


{{Java (Sun)}}
{{Java (Sun)}}

Revision as of 17:56, 15 October 2020

JavaFX
Developer(s)Sun Microsystems (now acquired by Oracle Corporation)
Initial releaseDecember 4, 2008; 15 years ago (2008-12-04)
Stable release
14 / March 11, 2020; 4 years ago (2020-03-11)[1]
Repository
Operating systemJava Runtime Environment
PlatformCross-platform
Available inJava
TypeApplication framework
LicenseEULA, parts under GPL+linking exception,[2] open-source
Websitewiki.openjdk.java.net/display/OpenJFX/Main and openjfx.io

JavaFX is a software platform for creating and delivering desktop applications, as well as rich Internet applications (RIAs) that can run across a wide variety of devices. JavaFX is intended to replace Swing as the standard GUI library for Java SE, but both will be included for the foreseeable future.[3] JavaFX has support for desktop computers and web browsers on Microsoft Windows, Linux, and macOS.

On desktops, JavaFX supports Windows Vista, Windows 7, Windows 8, Windows 10,[4] macOS and Linux operating systems.[5] Beginning with JavaFX 1.2, Oracle has released beta versions for OpenSolaris.[6] On mobile, JavaFX Mobile 1.x is capable of running on multiple mobile operating systems, including Symbian OS, Windows Mobile, and proprietary real-time operating systems.

With the release of JDK 11 in 2018, Oracle has made JavaFX part of the OpenJDK under the OpenJFX project,[7] in order to increase the pace of its development.[8] Oracle support for JavaFX is also available, for the current long-term version (Java JDK 8), through March 2025.[9]

Open-source JavaFXPorts works for iOS (iPhone and iPad) and Android and embedded (Raspberry Pi);[10] and the related commercial software created under the name "Gluon" supports the same mobile platforms with additional features plus desktop.[11] This allows a single source code base to create applications for the desktop, iOS, and Android devices.

Features

JavaFX 1.1 was based on the concept of a "common profile" that is intended to span across all devices supported by JavaFX. This approach makes it possible for developers to use a common programming model while building an application targeted for both desktop and mobile devices and to share much of the code, graphics assets and content between desktop and mobile versions. To address the need for tuning applications on a specific class of devices, the JavaFX 1.1 platform includes APIs that are desktop or mobile-specific. For example, the JavaFX Desktop profile includes Swing and advanced visual effects.

For the end user, the "Drag-to-Install" feature enables them to drag a JavaFX widget - an application residing in a website - and drop it onto their desktop. The application will not lose its state or context even after the browser is closed. An application can also be re-launched by clicking on a shortcut that gets created automatically on the user's desktop. This behavior is enabled out-of-the-box by the Java applet mechanism since the Java 6u10 update, and is leveraged by JavaFX from the underlying Java layer. Sun touts "Drag-to-Install" as opening up of a new distribution model and allowing developers to "break away from the browser".

JavaFX 1.x included a set of plug-ins for Adobe Photoshop and Illustrator that enable advanced graphics to be integrated directly into JavaFX applications. The plug-ins generate JavaFX Script code that preserves the layers and structure of the graphics. Developers can then add animation or effects to the static graphics imported. There is also an SVG graphics converter tool (also known as Media Factory) that allows for importing graphics and previewing assets after the conversion to JavaFX format.

Before version 2.0 of JavaFX, developers used a statically typed, declarative language called JavaFX Script to build JavaFX applications. Because JavaFX Script was compiled to Java bytecode, programmers could also use Java code instead. JavaFX applications could run on any desktop that could run Java SE or on any mobile phone that could run Java ME.[citation needed]

JavaFX 2.0 and later is implemented as a "native" Java library, and applications using JavaFX are written in "native" Java code. JavaFX Script has been scrapped by Oracle, but development is being continued in the Visage project.[12] JavaFX 2.x does not support the Solaris operating system or mobile phones; however, Oracle plans to integrate JavaFX to Java SE Embedded 8, and Java FX for ARM processors is in developer preview phase.[13]

Web Component

WebView, the embedded browser component, supports the following HTML5 features:

  • Canvas
  • Media playback
  • Form controls (except for <input type="color"> )
  • Editable content
  • History maintenance
  • Support for the <meter> and <progress> tags
  • Support for the <details> and <summary> tags
  • DOM
  • MathML
  • SVG
  • CSS
  • JavaScript
  • Support for domain names written in national languages

JavaFX Mobile

JavaFX Mobile was the implementation of the JavaFX platform for rich Internet applications aimed at mobile devices. JavaFX Mobile 1.x applications can be developed in the same language, JavaFX Script, as JavaFX 1.x applications for browser or desktop, and using the same tools: JavaFX SDK and the JavaFX Production Suite. This concept makes it possible to share code-base and graphics assets for desktop and mobile applications. Through integration with Java ME, the JavaFX applications have access to capabilities of the underlying handset, such as the filesystem, camera, GPS, bluetooth or accelerometer.

An independent application platform built on Java, JavaFX Mobile is capable of running on multiple mobile operating systems, including Android, Windows Mobile, and proprietary real-time operating systems.

JavaFX Mobile was publicly available as part of the JavaFX 1.1 release announced by Sun Microsystems on February 12, 2009.

Sun planned to enable out-of-the-box support of JavaFX on the devices by working with handset manufacturers and mobile operators to preload the JavaFX Mobile runtime on the handsets. JavaFX Mobile running on an Android was demonstrated at JavaOne 2008 and selected partnerships (incl. LG Electronics, Sony Ericsson) were announced at the JavaFX Mobile launch in February, 2009.

Design

Sun Microsystems licensed a custom typeface called Amble for use on JavaFX-powered devices. The font family was designed by mobile user interface design specialists Punchcut and is available as part of the JavaFX SDK 1.3 Release.

Components

JavaFX 2.x platform includes the following components:

  • The JavaFX SDK: runtime tools. Graphics, media web services, and rich text libraries. Java FX 1.x also included JavaFX compiler, which is now obsolete as JavaFX user code is written in Java.
  • NetBeans IDE for JavaFX: NetBeans with drag-and-drop palette to add objects with transformations, effects and animations plus a set of samples and best practices. For JavaFX 2 support you need at least NetBeans 7.1.1. For Eclipse users there is a community-supported plugin hosted on e(fx)clipse.
  • JavaFX scene builder: This was introduced for Java FX 2.1 and later. A user interface (UI) is created by dragging and dropping controls from a palette. This information is saved as an FXML file, a special XML format.
  • Tools and plugins for creative tools (a.k.a. Production Suite): Plugins for Adobe Photoshop and Adobe Illustrator that can export graphics assets to JavaFX Script code, tools to convert SVG graphics into JavaFX Script code and preview assets converted to JavaFX from other tools (currently not supported in JavaFX 2.x versions)

History

Early releases

JavaFX Script, the scripting component of JavaFX, began life as a project by Chris Oliver called F3.[14]

Sun Microsystems first announced JavaFX at the JavaOne Worldwide Java Developer conference on May 2007.

In May 2008 Sun Microsystems announced plans to deliver JavaFX for the browser and desktop by the third quarter of 2008, and JavaFX for mobile devices in the second quarter of 2009. Sun also announced a multi-year agreement with On2 Technologies to bring comprehensive video capabilities to the JavaFX product family using the company's TrueMotion Video codec. Since end of July 2008, developers could download a preview of the JavaFX SDK for Windows and Macintosh, as well as the JavaFX plugin for NetBeans 6.1.

Major releases since JavaFX 1.1 have a release name based on a street or neighborhood in San Francisco. Update releases typically do not have a release name.[15]

Oracle announced their intention to stop shipping JavaFX with JDK 11 and later,[16] and it's no longer bundled with the latest version.

On December 4, 2008 Sun released JavaFX 1.0.2.

JavaFX for mobile development was finally made available as part of the JavaFX 1.1 release (named Franca[15]) announced officially on February 12, 2009.

JavaFX 1.2 (named Marina[15]) was released at JavaOne on June 2, 2009. This release introduced:[17]

JavaFX 1.3 (named Soma[15]) was released on April 22, 2010. This release introduced:[18]

  • Performance improvements
  • Support of additional platforms
  • Improved support for user interface controls

JavaFX 1.3.1 was released on August 21, 2010. This release introduced:

  • Quick startup time of JavaFX application
  • Custom progress bar for application startup

JavaFX 2.0 (named Presidio[15]) was released on October 10, 2011. This release introduced:

  • A new set of Java APIs opening JavaFX capabilities to all Java developers, without the need for them to learn a new scripting language. Java FX Script support was dropped permanently.
  • Support for high performance lazy binding, binding expressions, bound sequence expressions, and partial bind re-evaluation.
  • Dropping support for JavaFX Mobile.
  • Oracle announcing its intent to open-source JavaFX.
  • JavaFX runtime turning to be platform-specific, utilizing system capabilities, as video codec available on the system; instead of implementing only one cross-platform runtime as with JavaFX 1.x.

Various improvements have been made within the JavaFX libraries for multithreading. The Task APIs have been updated to support much more concise threading capabilities (i.e. the JavaTaskBase class is no longer necessary since all the APIs are in Java, and the requirement to have a callback interface and Java implementation class are no longer necessary). In addition, the scene graph has been designed to allow scenes to be constructed on background threads and then attached to "live" scenes in a threadsafe manner.

On May 26, 2011, Oracle released the JavaFX 2.0 Beta. The beta release was only made available for 32 and 64 bit versions of Microsoft Windows XP, Windows Vista and Windows 7. An Early Access version for Mac OS X was also available for members of the JavaFX Partner Program at the time, while Linux support was planned for a future release of JavaFX. JavaFX 2.0 was released with only Windows support. Mac OS X support was added with JavaFX 2.1. Linux support was added with JavaFX 2.2.

JavaFX 2.0 makes use of a new declarative XML language called FXML.[19][20]

On April 27, 2012, Oracle released version 2.1 of JavaFX,[21] which includes the following main features:[22]

  • First official version for OS X (desktop only)
  • H.264/MPEG-4 AVC and Advanced Audio Coding support
  • CoolType text
  • UI enhancements including combo box controls, charts (stacked chart), and menu bars
  • Webview component now allows JavaScript to make calls to Java methods

On August 14, 2012, Oracle released version 2.2 of JavaFX,[23] which includes the following main features:[24]

  • Linux support (including plugin and webstart)
  • Canvas
  • New controls: Color Picker, Pagination
  • HTTP Live Streaming support
  • Touch events and gestures
  • Image manipulation API
  • Native Packaging

JavaFX 2.2 adds new packaging option called Native Packaging, allowing packaging of an application as a "native bundle". This gives users a way to install and run an application without any external dependencies on a system JRE or FX SDK.

As of Oracle Java SE 7 update 6 and Java FX 2.2, JavaFX is bundled to be installed with Oracle Java SE platform.[3]

Releases after version bump

JavaFX is now part of the JRE/JDK for Java 8 (released on March 18, 2014) and has the same numbering, i.e., JavaFX 8.[3]

JavaFX 8 adds several new features, including:[25]

  • Support for 3D graphics[26][27]
  • Sensor support
  • MathML support, with JavaFX 8 Update 192
  • Printing and rich text support
  • Generic dialog templates via inclusion of ControlsFX to replace JOptionPane as of JavaFX 8u40[28]

JavaFX 9 features were centered on extracting some useful private APIs from the JavaFX code to make these APIs public:

  • JEP 253: Prepare JavaFX UI Controls and CSS APIs for Modularization[29]

JavaFX 11 was first shipped in September 2018.

  • JavaFX 11.0.2 is the latest public release of JavaFX 11.[30]
  • JavaFX 11.0.3 is the latest release of JavaFX 11 for those with a long-term support contract.
  • MathML support, with JavaFX 11
  • FX Robot API

JavaFX 12 was first shipped in March 2019.

JavaFX 13 shipped in September 2019.

JavaFX 14 is the latest JavaFX release available now.

Future work

Oracle also announced in November 2012 the open sourcing of Decora, a DSL Shader language for JavaFX allowing to generate Shaders for OpenGL and Direct3D.[32]

Oracle wrote in its Client Support Roadmap that JavaFX new fixes will continue to be supported on Java SE 8 through March 2025[9]. Previously, Oracle announced that they are "working with interested third parties to make it easier to build and maintain JavaFX as a separately distributable open-source module." JavaFX will continue to be supported in the future by the company Gluon as a downloadable module in addition to the JDK.[33]

Availability

As of March 2014 JavaFX is deployed on Microsoft Windows, OS X, and Linux.[34] Oracle has an internal port of JavaFX on iOS and Android.[35][36] Support for ARM is available starting with JavaFX 8[37] On February 11, 2013, Richard Bair, chief architect of the Client Java Platform at Oracle, announced that Oracle would open-source the iOS and Android implementations of its JavaFX platform in the next two months.[38][39]

Starting with version 8u33 of JDK for ARM, support for JavaFX Embedded has been removed.[40]

Support will continue for x86-based architectures.[41]

A commercial port of JavaFX for Android and iOS has been created under the name "Gluon".[11]

License

There are various licenses for the modules that compose the JavaFX runtime:

  • Parts of the core JavaFX runtime are still proprietary software and its code has not yet been released to the public,[42] however developers and executives behind the technology are moving toward a full opening of the code,[43]
  • The JavaFX compiler[44] and an older version of the 2D Scene graph[45] are released under a GPL v2 license,
  • The NetBeans plugin for JavaFX is dual licensed under GPL v2 and CDDL.[42]

During development, Sun explained they will roll out their strategy for the JavaFX licensing model for JavaFX first release.[46] After the release in 2008, Jeet Kaul, Sun's Vice president for Client Software, explained that they will soon publish a specification for JavaFX and its associated file formats, and will continue to open-source the JavaFX runtime, and decouple this core from the proprietary parts licensed by external parties.[47]

At JavaOne 2011, Oracle Corporation announced that JavaFX 2.0 would become open-source.[48] Since December 2011, Oracle began to open-source the JavaFX code under the GPL+linking exception.[2][49]

In December 2012, new portions of the JavaFX source code were open-sourced by Oracle:[50]

  • the animations and timelines classes
  • the event delivery mechanism and other various core classes
  • the render tree interface, and the implementation of this interface
  • the geometry and shapes implementation
  • the java part of the rendering engine used in the rendering pipeline
  • the logging support

See also

References

  1. ^ https://github.com/openjdk/jfx/blob/9db2ff258fde2a60b1494857e2cacbf76791f4aa/doc-files/release-notes-14.md
  2. ^ a b "OpenJFX Project". Oracle Corporation. Retrieved 2011-12-07.
  3. ^ a b c "JavaFX FAQ". Oracle.com. Retrieved 2019-09-24.
  4. ^ "JavaFX ComboBox not responding on Windows 10". stackoverflow.com. Retrieved 2018-05-01.
  5. ^ "JavaFX Supported Configurations". Oracle.com. 2014-04-08. Retrieved 2016-08-01.
  6. ^ "Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle". Java.sun.com. Retrieved 2016-08-01.
  7. ^ "JavaFX Developer Home". www.oracle.com. Retrieved 2019-06-14.
  8. ^ Smith, Donald (March 7, 2018). "The Future of JavaFX and Other Java Client Roadmap Updates".
  9. ^ a b "Oracle Java SE Support Roadmap". Oracle Technology Network. Oracle. 2020-05-13. Retrieved 2020-05-31.
  10. ^ "JavaFXPorts - Gluon". Gluon. Retrieved 2018-05-01.
  11. ^ a b "Rapid Enterprise Mobile Apps: Build, Connect, Manage with Gluon". 2017-12-16. Retrieved 2017-12-16.
  12. ^ "Google Code Archive - Long-term storage for Google Code Project Hosting". Code.google.com. Retrieved 2016-08-01.
  13. ^ "Archived copy". Archived from the original on 2012-12-01. Retrieved 2012-11-24.{{cite web}}: CS1 maint: archived copy as title (link)
  14. ^ "F3 ( Chris Oliver's Weblog)". 2012-01-06. Archived from the original on 2012-01-06. Retrieved 2016-08-20.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  15. ^ a b c d e "Repositories and Releases". 2013-06-29. Retrieved 2013-10-18.
  16. ^ Gluon and JavaFX
  17. ^ Marinacci, Joshua (2009-06-09). "Top 5 Most Important Features in JavaFX 1.2". Archived from the original on 2009-06-13. Retrieved 2009-06-12.
  18. ^ "JavaFX 1.3 Released, Improves User Experiences". 2010-04-22. Archived from the original on 2011-04-30. Retrieved 2010-04-25.
  19. ^ Meyer, David (2011-10-06). "JavaFX 2.0 arrives and heads for open source". ZDNet. Retrieved 2011-10-09. The update introduces a new XML-based markup language called FXML, which is aimed at defining user interfaces. Other scripting languages, such as Groovy, JRuby and Scala, can also be used to write apps in JavaFX 2.0, as can the Java development tools NetBeans and Eclipse.
  20. ^ Brown, Greg (2011-08-15). "Introducing FXML" (PDF). Retrieved 2011-10-09.
  21. ^ "JDK 7u4 and JavaFX 2.1 released, now also including Mac OS X | Across the Universe". Terrencebarr.wordpress.com. 2012-04-27. Retrieved 2016-08-01.
  22. ^ "JavaFX 2.1 Release Notes". Oracle Corporation. Retrieved 2012-05-05.
  23. ^ "What's new in JavaFX 2.2 (The JavaFX Blog)". Blogs.oracle.com. Archived from the original on 2016-08-21. Retrieved 2016-08-01.
  24. ^ "JavaFX 2.2 Release Notes". Oracle Corporation. Retrieved 2012-10-02.
  25. ^ "JavaFX Roadmap". Oracle Corporation. Archived from the original on 2012-12-01. Retrieved 2012-11-24.
  26. ^ Yang, Chien. "3D Features Planned for Version 8". Oracle Corporation. Retrieved 2012-11-24.
  27. ^ "3D Features Planned for Version 8". Oracle Corporation. Retrieved 2012-11-24.
  28. ^ "Archived copy". Archived from the original on 2015-01-05. Retrieved 2015-01-05.{{cite web}}: CS1 maint: archived copy as title (link)
  29. ^ Giles, Jonathan (2015-01-14). "JEP 253: Prepare JavaFX UI Controls & CSS APIs for Modularization". Oracle Corporation. Retrieved 2016-01-17.
  30. ^ "javafxports/openjdk-jfx". GitHub. Retrieved 2020-07-20.
  31. ^ "javafxports/openjdk-jfx". GitHub. Retrieved 2020-07-20.
  32. ^ Bair, Richard (2012-11-06). "Open Sourcing: decora-compiler". Oracle Corporation. Retrieved 2012-11-24. I'm going to be open sourcing today another one of our projects called decora-compiler. We have our own DSL for shader languages called Decora. What we do is generate shaders for OpenGL and D3D from this language. We also generate Java code and SSE native code. For some shaders, we ended up generating them and then hand-tweaking them from there
  33. ^ JavaFX
  34. ^ "General Availability Download". Oracle Corporation. Retrieved 2013-01-05.
  35. ^ Bair, Richard (2012-12-03). "Porting JavaFX". Mail.openjfx.dev.java.net. Retrieved 2013-01-05.
  36. ^ Brandalik, Tomas (2012-12-07). "Survey: JavaFX on tablets and mobile devices". Retrieved 2013-01-05.
  37. ^ "1 JavaFX Overview (Release 8)". Docs.oracle.com. Retrieved 2016-08-01.
  38. ^ Bair, Richard (2013-02-16). "February Open Source Update". Oracle Corporation. Retrieved 2013-02-13. We're also going to open source our iOS and Android implementations over the next couple months.
  39. ^ "Oracle Announces Open Source JavaFX for iOS and Android". Infoq.com. 2013-02-13. Retrieved 2013-02-16. Oracle has announced plans to open source the iOS and Android implementations of its JavaFX UI platform "over the next couple of months", allowing developers to use the technology to write cross-platform applications for those platforms for the first time.
  40. ^ "JDK for ARM 8u33 release notes". Oracle Corporation. 2013-02-16. Retrieved 2015-03-09. Starting with JDK 8u33, JavaFX Embedded is removed from the ARM bundle and is not supported.
  41. ^ Topic, Dalibor (2013-01-27). "Raspberry Pi's mailing list: Where's JavaFX in recent Java 8u33 for the ARM ?". Retrieved 2015-03-09. JavaFX continues to be provided as a fully supported part of the Oracle JDK 8 product on x86 platforms (Windows, Linux, Mac).
  42. ^ a b "JavaFX Downloads". Openjfx.dev.java.net. Retrieved 2008-06-07.[permanent dead link]
  43. ^ "February Open Source Update". JavaFX News, Demos and Insight // FX Experience. 2013-02-11. Retrieved 2016-05-25.
  44. ^ "OpenJFX Compiler Project". Openjfx-compiler.dev.java.net. Retrieved 2008-06-07.[permanent dead link]
  45. ^ "Project Scene Graph home". Scenegraph.dev.java.net. Archived from the original on 2012-03-06. Retrieved 2008-06-07.
  46. ^ "Will JavaFX technology be released in open source?". Retrieved 2008-06-07. Sun will continue to engage the OpenJFX community as we release JavaFX products. This fall we will be rolling out our open source strategy for JavaFX technology concurrent with the release of version 1 of JavaFX Desktop
  47. ^ Kaul, Jeet (2008-12-16). "JavaFX — the road ahead". Archived from the original on December 17, 2008. Retrieved 2009-01-03. Sun is committed to open standards and open source, and specifications are coming soon(…)There are some dependencies on licensed code that cannot be open sourced. We are working towards decoupling the dependencies so that the non-proprietary portions can be open sourced. Currently the JavaFX compiler, Netbeans JavaFX plugin and Eclipse JavaFX plugin are already being developed in the open source. The scene graph is out in the open. We will put the core runtime out in the open over time.
  48. ^ Meyer, David (2011-10-06). "JavaFX 2.0 arrives and heads for open source". ZDNet. Retrieved 2011-10-09. At the event, Oracle also announced plans to make the JavaFX platform open source. It has submitted a proposal to the OpenJDK Community, and its first contribution will include the JavaFX user interface controls and related libraries. "Other JavaFX components are planned to follow in multiple phases," the company said.
  49. ^ Bair, Richard (2011-12-02). "Call for patches". Oracle Corporation. Retrieved 2011-12-07. Hey guys, Just a note to indicate that the UI controls have been open sourced into openjdk[unreliable source?]
  50. ^ Safrata, Pavel (2012-12-18). "More of JavaFX open-sourced". Oracle Corporation. Retrieved 2013-01-05. Hello everyone, today we open-sourced another part of JavaFX. Following projects are now part of OpenJFX

Bibliography

External links