JavaFX 14 focuses on stability and lays groundwork for the future
JavaFX 14 arrived yesterday, bringing with it a short and sweet list of new features, improvements and bug fixes. While there’s nothing overtly spectacular in this release, it paves the way for bigger things in six months when JavaFX 15 is due. Let’s take a closer look at what has changed.
JavaFX 14 is here and brings a lot of bug fixes and a manageable amount of improvements. Most importantly, this release is on schedule, like clockwork. It shows that the new release cadence, with a new version every six months, works well, ensuring changes to JavaFX flow into the everyday life of the developers in steady, bite-sized portions.
JavaFX 14 – what’s new?
The JavaFX 14 release notes list a total of seven “enhancements”, but only two of them are really new features; the
TextFlow nodes have been given a new property that allows you to set the size of tabs, and a new property allows to switch off the cursor on embedded systems. On the Raspberry Pi, for example. On embedded systems, JavaFX uses
Monocle as implementation of the glass windowing system. This system always showed the so-called hardware cursor, even if it was not needed. So-called kiosk systems should look more professional in the future.
SEE ALSO: JavaFX 14 – “There’s no need to use an older version of JavaFX when doing mobile development any more.”
The other five improvements are mainly in the category “Cleanup / Technical Debt”. Shared code of
TreeTableView was in a utility class and could not be overwritten. This made it difficult to develop extensions. Two important components in the popular ControlsFX project could therefore no longer be used with Java 11+. Also, support for HTTP/2 in the
WebView component is now available and GTK is now used on Linux systems for drag & drop instead of GDK. JavaFX 14 also brings a small optimization in the area of event dispatching and for the so-called “dirty bits” of node and scenegraph, a better data structure is now used.
JavaFX 14 bug fixes
You can see that the scope of the enhancements was kept within tight limits. The bug fixes are far more interesting. The performance of the CSS styling was greatly improved, because a bug caused the CSS information to be evaluated redundantly several times. When exchanging larger Scenegraph structures, the difference can be noticeable. An application that was previously perceived as slow can look fast and professional with the new release. Additionally, with JavaFX 14, the groundwork was done to make the interaction between JavaFX and GraalVM work better. Since Gluon is the leading developer of JavaFX, it is obvious that practically every new release contains elements that will make it even easier to run JavaFX on iOS and Android in the future.
SEE ALSO: Clojure – a mature alternative to Java
Furthermore, problems have been fixed on MacOS Catalina; previously, as soon as JavaFX applications were started on Catalina, a warning appeared to the user that the application wants to receive input from all applications. The user then had to explicitly allow the Java process to do this, which of course lead to uncertainties for the user. With the new release, this is a thing of the past. On Catalina, there were also problems with the dialogs for loading and saving files. As soon as these were displayed, the application crashed. And last but not least, several null pointer exceptions and memory leaks have been fixed.
As you can see, JavaFX 14 is a solid release with a strong focus on stability and future-oriented extensions. You can find more information about the enhancements and bug fixes in the release notes on GitHub.