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.
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 8.0 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;fxsampler-*.jar
Mac / Linux:
java -jar controlsfx-samples-*.jar:fxsampler-*.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.
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.