ControlsFX is an open source project for JavaFX that aims to provide really high quality UI controls and other tools to complement the core JavaFX distribution. It has been developed for JavaFX 8.0 and beyond, and has a guiding principle of only accepting new controls / features when all existing code is at an acceptably high level, including thankless jobs like having high quality javadoc documentation. This ensure a high quality release is available at all times, with all experimental work being done in branches of the main code base.


ControlsFX includes so many features that we’re now listing them on a separate page! Go to the ControlsFX features page to see some of what is included in ControlsFX.

Quick links

Getting ControlsFX

For users of JavaFX 8u60 and greater, download ControlsFX 8.40.10-SNAPSHOT builds.
For users of JavaFX 8u40, download ControlsFX 8.40.9.
For users of JavaFX 8u20, download ControlsFX 8.20.9.

ControlsFX ships as a single zip file which contains the library jar as well as a samples jar. Documentation, which used to be included in the single zip file, is now available online. The JavaDoc jar is also available at Maven Central. For those of you who prefer to use Maven for handling dependencies, ControlsFX is now available this way too. Simply use the groupId of ‘org.controlsfx’ and the artifactId of ‘controlsfx’, for example:


Important note: ControlsFX will only work on JavaFX 8u20 or later. If you are running on earlier versions of Java, please upgrade. If you are still using JavaFX 2.x then unfortunately this library will not work for you.

Getting Started / Contributing

If you want to play with the ControlsFX sample application, simply download the ControlsFX release and run the following command on the command prompt (be sure to replace the * with the actual version number of FXSampler and ControlsFX-samples):

java -jar controlsfx-samples-*.jar

If you think you have a feature you can contribute, a bug you want to fix, or have a bug you’d like to file, please direct it to the issue tracker.

If you want to use ControlsFX, then you’re probably wondering how to use the API that we’ve slaved over for hours! In your case, the best and definitive location for help is definitely our javadocs. Fear not, these are not a barren wasteland of undescribed functionality – we’ve poured our hearts into making these javadocs full to the brim of examples, commentary and explanation. If anything is unclear to you, file a bug in our issue tracker and we’ll do our best to update the documentation straight away!

If you have questions, you should join the the mailing list.

Another great place to explore is our sample code, all located in the controlsfx-samples directory of our source code repository. We’ve put a bunch of effort into making these examples something you can learn from.

Release Versioning

ControlsFX has a slightly different approach to version numbers than other projects. We use the fairly traditional x.y.z numbering system, except in the case of ControlsFX, the x.y portion is used to represent the base JavaFX version required. In other words, ControlsFX 8.0.0 is the first release of ControlsFX to work on JavaFX 8.0 and above. ControlsFX 8.1.5 (if we ever release that version) is used to represent that the release will work on JavaFX 8.1 (and not JavaFX 8.0), and is the 6th release (remember: real programmers count from zero :-) ).

In other words, we do not differentiate between bug fix and feature releases – we will clarify what the release contains on a per-release basis. Also, we will always aim to require the minimal version of JavaFX possible, but we are also not going to hold back features / bug fixes / etc if we can resolve them by moving to a newer release. Prior to moving up to a new JavaFX version we will always tag the repository and make available a download of the source and compiled code for the earlier version, for people who are unable to move to the newer JavaFX release.artifact_suffix

Thanks To


With the recent release of JDK 8u60, a lot of people are reporting that ControlsFX no longer works. This is because private APIs that ControlsFX depends on changed in 8u60, and as such we have needed to update our library to deal with this. For those of you who are using JDK 8u60 and want […]

This release has been a long time in the making – I must apologise for the delays. However, today is the day that I am pleased to announce the availability of ControlsFX 8.40.9. This release is the first release to baseline on JavaFX 8u40, and brings with it hundreds of bug fixes and usability improvements. […]

Hot on the heels of the 8.20.7 release, I am pleased to announce the release of ControlsFX 8.20.8. This release is primarily a bug fix release (to smooth some of the rough edges from 8.20.7), but there are also a couple of new features in this release to keep things interesting. The main bug fixes […]

It’s time for another ControlsFX release, this time taking the version number on another jump up the scale and finally settling on version 8.20.7. What this version number represents is the fact that this release requires JavaFX 8u20 and will not work with earlier versions. If you want to use ControlsFX with JavaFX 8.0, you […]

Wow – this release of ControlsFX is a big one in all respects! It took just shy of three months, consists of nearly 500 changesets, has been translated into 17 languages, and includes a huge number of bug fixes and new features. This is going to be a long post, so strap yourselves in and […]