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 ControlsFX 8.20.8, there is just one download:

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.

Commercial Support / Licensing

ControlsFX is licensed under the 3-Clause BSD license. We are not lawyers, but our interpretation of this license suggests to us that it is business friendly, requiring only the redistribution of the 3-clause BSD license we distribute with ControlsFX. As always, I suggest you review the license with the appropriate people, rather than take the advice of software engineers. If this license is not suitable, please contact Jonathan Giles to discuss an alternative license.

ControlsFX is worked on by developers who have families and lives outside of coding. Whilst we enjoy working on open source projects, we can only do it when our personal time permits. If you need custom functionality, urgent bug fixes, or if you just want to show your appreciation for the developers, you may be interested in paying for commercial support for ControlsFX. As with commercial licensing, please contact Jonathan Giles to discuss this further.

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


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 […]

It’s time for another ControlsFX release, this time taking the version number to 8.0.5. As always, ignore the minor version increment – this is a massive release. This release has new controls and a number of bug fixes, so it is recommended that everyone upgrade as soon as possible. As per usual, the latest version […]

Merry Christmas all! I’ve just released ControlsFX 8.0.4, which is (for once!) a minor release of ControlsFX, primarily released to fix an issue with images used in the library. In addition to this, there are a number of SpreadsheetView improvements and API improvements to the Borders API. Enjoy!