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.
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.
- BitBucket project
- Mailing list
- Bug / feature tracker
- JDK 8 developer preview download
ControlsFX 8.0.5 ships as a single zip file which contains a library jar, a javadocs jar, and a samples jar. 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’. The latest release version is 8.0.5 and the latest snapshot is ’8.0.6-SNAPSHOT’.
Getting Started / Contributing
If you want to play with the ControlsFX sample application, either clone the ControlsFX repo from bitbucket and then run the org.controlsfx.HelloControlsFX application that resides within the src/samples/java directory, or run the samples jar file from the command line with the following command:
java -jar controlsfx-samples-8.0.5.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 src/samples directory of our code repository. We’ve put a bunch of effort into making these examples something you can learn from.
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.
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.