I’ve been hinting at this project for a really long time, and I’m finally ready to take the wraps off of it. I am incredibly pleased to announce the immediate availability of the first developer preview release of the brand new ControlsFX project. You can visit the ControlsFX page for all the details on how to download, use and contribute.

This has been a long-running project that has recently gained steam thanks to a number of contributors helping out. Over time I’ll call them out in more detail (and perhaps with interviews), but today the main people I’d like to thank are Eugene Ryzhikov, Hendrik Ebbers, and Danno Ferrin.

To conclude this post, I’m copy/pasting the new features documentation from the ControlsFX page into the remainder of this blog post.

Features

ButtonBar
A horizontal container for buttons, which automatically places the buttons in the correct position for the underlying operating system. Just annotate the buttons with their type and it’ll handle the rest!

ButtonBar


Dialogs
A collection of pre-built, modal dialogs providing a really simple yet powerful API. Supports all manner of pre-built dialogs, and even allows for custom dialogs to be easily created.

Dialogs


GridView
A fast, virtualised grid container similar to ListView, except that there can be multiple cells on each row. Great for showing images!

GridView


RangeSlider
When you want a user to specify a range, right now you need to give them two text fields to type into (or two sliders). Yuck! This control is essentially the standard JavaFX slider but with two draggable thumbs on it – one representing the low value and the other the high value. Much better!

RangeSlider


Rating
A simple control that allows users to specify a rating between zero and a maximum value. This control supports partial ratings and updating on hover or on click.

Rating


SegmentedButton
When you have a ToggleGroup with buttons in it, it looks nicer when the buttons are grouped together (rather than individual buttons). This is exactly what the SegmentedButton control does – it ‘merges’ together all of your buttons in a ToggleGroup so that it is clear to users that the buttons are related.

SegmentedButton