PLEASE NOTE: JFX Flow is no longer being actively developed or maintained. You are free to take the code and use it, and there is much you might find useful inside the codebase. Unfortunately I do not have any clients willing to use JavaFX at the moment so I do not have time (or incentive) to maintain this project.

 

Welcome

JFX Flow is a free, open source framework for developing rich, interactive and user friendly web-style GUIs for desktops using JavaFX (2.0+). JFX Flow combines the powerful feature set of Java FX (styling, animations, FXML, etc) with a simple ‘web flow’ style framework, that is easy to use and that fosters clean architectural patterns, especially when developing JEE applications.

Showcase

The JFX Flow Showcase demonstrates some of the core features of the JFX Flow toolkit. It is highly recommended that you browse through this demonstration to get an understanding of the core concepts. Launch the JFX Flow showcase

Core Features

  • Supports simple, user friendly “web-style” user interface design
  • Provides built-in navigation support for browser-like applications (back, forward, refresh, etc)
  • Facilitates a modularized application architecture of reusable components with clean separation of concerns (i.e. separate view code from control code)
  • Provides natural integration with JEE technologies, such as Spring, Guice, databases and web services.
  • Provides a toolkit for common user interface tasks such as blocking while loading, error handling, animated page transitions and more.
Motivations The web has redefined the way users interact with computers, with a focus on simplicity and ease of navigation. In recent years a trend towards rich internet applications (RIAs) has built on this to add more dynamic and powerful user experiences while still maintaining the original simplicity and ease of use that has made the web so popular. This has come at cost however. The gradual evolution of technologies, from a simple hypertext browser to a full featured application platform has stretched the original platform to its limits. In particular the scripting languages, which were originally intended to allow small snippets of dynamic behaviour to be added to web pages, are now used as the back-bone of RIAs, creating both architectural challenges and cross-browser support issues. A huge amount of effort is being spent in this area, with libraries such as jQuery and platforms such as GWT, focusing on trying to contain the complexities of JavaScript and isolate application developers from these. HTML5 also aims to address many of the complexities with RIA development. JFX Flow is intended to be an alternative to these technologies and is coming at the problem from the reverse angle: instead of hashing browser technologies into a RIA platform, JFX Flow aims to take the pure-Java, rich user interface platform of JavaFX and bring the best bits of the web to it.