I’m going to be away from my computer for all of tomorrow, so here’s the JavaFX links from the past week, roughly 12 hours early! Enjoy :-)

  • Gerrit Grunwald has posted twice in the past week. Firstly, he created a new gauge called ‘AirCompass‘, which he ported (quickly) from his Swing SteelSeries library. Secondly, he has created a ‘poor mans live editor’ by combining the JavaFX WebView component with the Nashorn JavaScript engine.
  • Amrullah has a post about a beta release of TiwullFX 2.0 (for JavaFX 8.0) being available for download and testing. This library is a very good one if you’re doing heavy table-related work (although I’ve not used it myself, I just think the feature set sounds cool).
  • Pedro Duque Vieira continues to improve his JMetro style for JavaFX, this time focusing on the Slider control. I’ve not really looked into Metro styling at all, but it seems to me that the slider fill colour on the vertical sliders appear to be coming out from the wrong side (the top rather than the bottom)? I guess it is hard to judge as the horizontal sliders are all at their zero position, so you can’t see what the fill colour is to the left of the thumb.
  • Jens Deters has blogged about using Swing and JavaFX in a single application by using JFXPanel.
  • Jeff Martin has updated his SnapCode project to include support for console i/o.
  • Simon Lissack has a blog post detailing the many ways in which external stylesheets can be loaded in JavaFX.
  • Frank Roth has a blog post about his jSona project mentioned last week (a JavaFX-based music player).
  • Bruno Borges has a blog post about his JavaFX version of the 2048 game. The source code is available, and as he notes, he used this project to better learn about a number of things, including lambda expressions, the Stream API, JavaFX 8, JavaFX CSS basics and JavaFX animations.
  • Sébastien Bordes has a post about JRebirth (his JavaFX application framework) running on Equinox.

Keep up the great work folks! Catch you all next week! :-)

A huge number of links this week – people really are having fun with JavaFX these days, which is great to see!! :-)

That’s all for this week – catch you in a weeks time.

Hi all. The big news this week was of course Java 8.0 being released, but that didn’t seem to stop all of you from getting your projects done – there is a heap of interesting news this week! Keep up the great work, and to everyone else, enjoy! :-)

  • As mentioned, Java 8.0 / JavaFX 8.0 was released this week. It shouldn’t surprise anyone that this is a major release of JavaFX, bringing with it a heap of new features and bug fixes, having been in development for a very long time! If you haven’t already, you can download JDK 8 from the usual source. Whilst that is downloading, you can learn more about what is new in JavaFX 8.0, or read the JavaFX documentation. There are heaps of features in this release, but some of my (very biased!) favourites include new controls (TreeTableView and DatePicker), UI control support on embedded platforms, print support, 3D support, bi-directional text support, and of course the new Modena stylesheet that is used by default. You can read more detail about the JavaFX features in JDK 8 in the release notes.
  • Tom Eugelink has added a new ‘CircularPane’ layout container to the JFXtras project. His blog post is a very interesting read that covers the details of implementing such a layout (to avoid overlapping nodes, for example).
  • Tomas Mikula continues to create interesting JavaFX projects! This week he has open sourced his EasyBind project, which “leverages lambdas to reduce boilerplate when creating custom bindings.” Overall it looks like a very useful library for people to investigate using in their projects.
  • Speaking of Tomas, he has also done a blog post titled “Trigger processing after a period of inactivity“, which shows how to use ReactFX to defer processing of user input until a specified period of user’s inactivity.
  • Michael Berry has blogged about draggable and detachable tabs in JavaFX. This is something I’ve been wanting to do in JavaFX for a very long time, so I’m pleased someone has already done it :-) It would be great to see this contributed back to OpenJFX / JFXtras / ControlsFX so that it could be more widely used and tested.
  • Adam Bien has announced afterburner.fx version v1.4.4. This release includes support for resource bundles and improved support for mocking.
  • Dino Tsoumakis has updated followme.fx, a sample afterburner.fx project for iOS based on Adam Bien’s afterburner.fx.
  • Jens Deters has posted a call for people to verify the responsiveness of their applications to different screen / font size configurations, after he found one of his apps rendered poorly.
  • Christoph Nahr has released MIME Browser 1.3, a JavaFX-based application for browsing MIME messages that are locally stored in standard EML files.
  • Sean Phillips has a video titled “Enhancing NASA Mission Support with JavaFX 8“. The video demonstrates his work with JavaFX, ControlsFX, and NetBeans. Very impressive stuff.
  • Mark Stephens has a blog post with some screenshots / information about the new (and commercial) JavaFX-based PDF viewer that IDR Solutions is working on.
  • Dirk Lemmermann has released a first early access build of his (commercial) JavaFX-based FlexGanttFX library.

Catch you next week :-)

A heap of links this week – you’ve all been very busy! :-)

That’s all folks. See you next week! :-)

Another week rolls around, and so do a bunch more of your links. Enjoy!

  • A colleague of mine in the JavaFX team at Oracle, David Grieve, has started up a new blog. His first post is titled ‘lambda to the rescue‘, and it covers how, with the help of lambdas in Java 8, he is able to write better code in JavaFX.
  • Juergen Kress has a post about there now being NetBeans support for JavaFX on iOS.
  • I announced, on behalf of the ControlsFX project, that version 8.0.5 was released. This release is a major release with a number of new and useful controls. If you are unfamiliar with ControlsFX, be sure to check out the features page for a high-level summary of all the cool stuff available in ControlsFX.
  • There have been new releases of ScalaFX for both JavaFX 2.x and 8.x. If you’re a Scala fan, then you should definitely check this library out.
  • Pedro Duque Vieira has blogged about adding ProgressBar support in his JavaFX Metro stylesheet.
  • Geertjan Wielenga has interviewed Walter Nyland and Jason Wexbridge on their new book titled ‘NetBeans Platform for Beginners’, and the relevance of the Java desktop.
  • Jeff Martin posted an update to SnapCode this week with new Mouse and Keyboard sensing features, new pen graphics features and numerous improvements and fixes.

That’s that for another week. Catch you all next week! :-)

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 is always available in maven central (as well as snapshot versions of the next release), and you can download the release directly from the ControlsFX website.

This release was developed by Eugene Ryzhikov, Samir Hadzic, Dirk LemmermannDavid Grieve, IsNull, Dennis Fischer, Paul Jonas, Kouchuu, and I. It is because of these fine folks you can use ControlsFX, so be sure to give them a high-five if you pass them in the street.

If you aren’t familiar with ControlsFX, you should check out the main ControlsFX website, and more importantly, the ControlsFX features page. Once you’re done there you should take a look at our sample app and javadocs.

With that out of the way, here is what is new in ControlsFX 8.0.5:

AutoComplete TextField
With this you can provide suggestions to users as they type into a TextField. The popup will only show options based on the currently typed input.


The BreadCrumbBar control is designed to allow people to easily navigate back up a hierarchical page structure. It’s based on the same API as the TreeView control (that is, it uses the TreeItem structure). This control is useful to visualize and navigate a hierarchical path structure, such as file system. Here’s what it currently looks like:

The BreadCrumbBar UI control.

The BreadCrumbBar UI control

A pane used to display a full-size content node and four initially hidden nodes on the four sides. The hidden nodes can be made visible by moving the mouse cursor to the edges of the pane. The hidden node will appear (at its preferred width or height) with a short slide-in animation. The node will disappear again as soon as the mouse cursor exits it. A hidden node / side can also be pinned, and it will remain visible as long as it stays pinned.


The HiddenSidesPane, with a node at the bottom that has animated into view.

This control was initially developed by my colleague David Grieve before being integrated into ControlsFX. It is designed to show a small blurb of text above a node (most commonly an ImageView, but it will work with any Node). The text can be collapsed down to a single line, or expanded to show the entire text. In some ways, it can be thought of as a always visible tooltip (although by default it is collapsed so only the first line is shown – hovering over it (or clicking on it if the showOnHover functionality is disabled) will expand it to show all text). Shown below is a screenshot of the InfoOverlay control in both its collapsed and expanded states:

The InfoOverlay control

The InfoOverlay control

A master / detail pane is used to display two nodes with a strong relationship to each other. Most of the time the user works with the information displayed in the master node but every once in a while additional information is required and can be made visible via the detail node. By default the detail appears with a short slide-in animation and disappears with a slide-out. This control allows the detail node to be positioned in four different locations (top, bottom, left, or right).


A (rather ugly!) screenshot of a master pane (a green rectangle) with a detail pane (the red rectangle) expanded from the bottom. Hopefully your use case might be a bit prettier!

ControlsFX has had the NotificationPane feature for a release or two now, but that required that the notification appear within the window. Some use cases are to simply inform the user of an event, even when the main window itself is not visible (or focused) – think email notifications, for example. This is where the Notifications class comes in – it will show a notification message to users in one of nine locations on the screen, and even supports stacking multiple notifications, and showing complex scenegraphs. After a set duration, the notification will fade out.


A plus minus slider allows the user to continuously fire an event carrying a value between -1 and +1 by moving a thumb from its center position to the left or right (or top and bottom) edge of the control. The thumb will automatically center itself again on the zero position when the user lets go of the mouse button. Scrolling through a large list of items at different speeds is one possible use case for a control like this. You may be familiar with Google Picasa, which has a similar control for scrolling through the image list.

The PlusMinusSlider in both horizontal and vertical states

The PlusMinusSlider in both horizontal and vertical states

FXSampler Source Code Tab
FXSampler (the sample app we wrote for demonstrating ControlsFX, and which is open source to allow for third parties to use it to demonstrate their own software samples) now allows for displaying the source code for samples, making it even easier to teach people how to use new API. Here’s a screenshot:

Source code in FXSampler

Source code in FXSampler

Miscellaneous Improvements
There are always a number of improvements that fall under the radar for each release, but some of the more notable improvements include:

  • Support for row resizing in the SpreadsheetView control.
  • Glyph font loading is now lazy (which is important for FontAwesome as we download the font from the web when it is used).
  • Support for CSS styling dialogs.
  • There is now much better numeric field support in PropertySheet. It includes automatic support for editing integer and floating point values.
  • ControlsFX dialogs are now about to be internationalized, and we’re planning to extend this internationalization support through to all controls in the next release. We already have English and Russian translations, and would happily accept other translations if people are willing.

That’s all for this release. Go forth, download and enjoy! :-)

A relatively quiet week this week, but what we do have is great – new releases and new open source projects – great stuff!

Catch you all next week :-)

More days. Much work. Such links. Wow.

Catch you all again next week! :-)

Another week, another batch of links. Enjoy!

That’s all folks! Catch you again next week.

Another week, more links – enjoy :-)

  • Tomas Mikula is working on two interesting projects that you should keep an eye on (on top of his excellent CodeAreaFX): ReactFX and UndoFX. The ReactFX “project is an exploration of reactive programming techniques for JavaFX” – and I highly recommend you look at the code examples to understand how it might be useful in your projects. UndoFX is “a general-purpose undo manager for JavaFX (or Java applications in general).” Again, something that could be very useful in your applications! :-)
  • Jens Deters has posted code to make it easy to animate a SplitPane divider.
  • Daniele Renda has a post on “Real World JavaFX with GraniteDS : the ACI Ticketing and Booking System”.
  • Dirk Lemmermann has blogged about another control coming in the soon-to-be-released ControlsFX 8.0.5: MasterDetailPane.
  • Thierry Wasyl has posted a handy tip on how to more cleanly ensure your code is running on the JavaFX Application Thread.
  • Steven Schwenke has blogged about an extendable search pane he has created in JavaFX, which may be useful for other developers.
  • Thomas Bolz has published his project ‘renamerFX‘ which is a utility to “batch rename your pictures and movies after taking them from the camera from cryptic to meaningful file names.”
  • Jan Kovar has started work on FXUtils, whose stated goal is to “develop set of components for easier development of JavaFX 8 applications using FXML.”

See you all next week for another round.