In the beginning, there was “awt” or Java’s abstract window toolkit which was used for both Applets (embedded Java programs on webpages) and Applications. With this you could create buttons, checkboxes, text fields, etc and make a program with a basic user interface.
Then came Swing, Java’s updated GUI library with more tools and an updated look and feel. Swing is still very popular and widely used, but now that Java has Oracle at the helm we are once again seeing Java move into a new and exciting direction.
I was surprised to learn that JavaFx has been around for a long time. Even before Oracle acquired Java from Sun Microsystems in 2009, Sun acquired the technology when they bought out ‘See Beyond’ in 2005. It started out as more of a side project when it was first released as ‘JavaFx’ in 2007, and didn’t gain much traction even after Oracle acquired Java. But then in 2010 Oracle announced the future direction for Java which included a completely re-done JaxaFx as the centrepiece technology for building applications. Java 8 which was released in March 2014 and is the first MAJOR Java release that includes JavaFx as an integral part of its core distribution.
If you go directly to the JavaFx faq source at Oracle they state clearly that yes, “JavaFX (is) replacing Swing as the new client UI library for Java” which is why it makes sense as Java developers that we start taking JavaFx seriously and start embracing it as the best way to build applications in Java.
So what’s the big deal with JavaFx anyway? Well here in a nutshell are the main features of JavaFx, which also try to answer the question “why use it in the first place?”
- New and improved interface tools that are way… WAY beyond your standard buttons, checkboxes, etc. (Think bar and pie charts and cool things you can find using JQuery like date-pickers, accordion panes, tabbed panes etc.) .
- A new ‘language’ called FXML, which like HTML is used only to define the interface of an application, keeping it completely separate from the code logic.
- An outstanding application called ‘Scene Builder’ which can be integrated into NetBeans and Eclipse to allow you to create and generate FXML documents using a drag-and-drop design interface (like Dreamweaver for HTML)
- A new powerful way to control the design of your application with CSS-like syntax and precision. If you know any CSS you will easily be able to make the transition to styling JavaFx applications.
- An integrated library for graphics (both 2D and 3D) as well as animation tools that rival Flash, JQuery and CSS animations
- Mobile platform development tools (which admittedly, I know very little about at the time of writing this post but like everything else on this site, as I learn I share). There is an open-source project called JavaFx ports that helps bridge the path to mobile application development with JavaFx
- Speaking of open-source, that is EXACTLY what JavaFx is. This is cool for 2 reasons:
- It’s survival chances are greatly improved with a worldwide army of JavaFx fans contributing to the development and well-being of the technology
- Others are quickly developing additional tools, plugins and UI controls that go beyond the offerings at Oracle. Check this out from ControlsFX – very cool!.