05 January 2010

JavaFX Competition Proposal

With the beginning of the new year now is a good time to look at a new JavaFX competition. What I am proposing for the competition (on the official JavaFX website) is one for the best JavaFX control, which can be used in any JavaFX application. Here are the following conditions for the proposed competition:

  1. Any submitted control must be a native JavaFX control (not a native Swing control)
  2. The control cannot be a reimplementation of an existing JavaFX 1.2 control
  3. Skin(s) must be available for the control and the control has to be skinnable via CSS
  4. Only a visual control can be submitted

A competition like this would certainly help with boosting the number of available controls for JavaFX (supplied by Sun and the community). Also it would go a long way towards making JavaFX a more viable technology for building RIA applications (both consumer and enterprise). If you have any further ideas for the proposed competition let me know in the blog comments.


  1. As a developer in the JavaFX controls team, of course I'd love to see more people involved in this area. Perhaps the biggest hurdle with this proposal is that JavaFX 1.3 changes how skins are built drastically, particularly in relation to CSS. Also, of course, we have some controls coming up in JavaFX 1.3 which need not be duplicated, obviously.

    Please, publish controls if you have any. You can blog about them, contribute them to projects like JFXtras, etc, and there are good blogs out there that discuss how to build them (I've even blogged about this topic on my site at http://www.JonathanGiles.net).


  2. see http://code.google.com/p/crudfx/

  3. @Sergey: CrudFX has a lot of dependencies on Swing code, which obviously means that it is not a JavaFX native control as per Nicks original outline. The problem with Swing-based controls is that they reduce the portability of the JavaFX application - it can no longer be considered for deployment on TV or mobile, for example. It also means that performance improvements such as the new prism graphics stack coming in a future JavaFX release will not be able to be used in any program using CrudFX.

  4. Hm. I don't need TV or mobile. All i need are rich components easy to using. Use my CRUDfx SDK for JavaFX or create you own components for grid, list, tree, layouts, Google map, MIDI sound, web-services, SQL etc.

  5. Desktop, mobile phone and TV are very different. The phone has a small screen, phone keyboard is uncomfortable and there is no mouse on cell phone. TV has a big screen, TV hasn't got keyboard or mouse. Look at MS Office for desktop and MS Office for Windows Mobile. They have a totally different GUI. I hade made many application for mobile phones and for embedded devices. Try to understand that any successful application MUST have a different user interface for desktop and for mobile. You on absolutely wrong way If you try launch desktop application on mobile device.

  6. Sergey - fair comments about customising the UI for various devices, but you're ignoring the other point of my comment which was that by relying on Swing in crudFX, you're unable to use the new Prism pipeline that is in the works. This might not matter in all cases, but it would of course be nice, as a developer, to not have that choice imposed upon me by my choice of libraries.

    That is why I am pleased Nick mentioned that the controls should be JavaFX native, as this encourages portability between the two graphics stacks.

  7. CRUDfx SDK for JavaFX is an old library. I have rewrote it for JavaFX versions 1.0, 1.1 and 1.2. I will rewrite it for version 1.3. No problem. But I think that JavaFX team should stop violating the compatibility between versions.

  8. In response to Jonathan Giles comment on customising the UI not all controls will be suitable on all devices. Take the table control for instance on a mobile device. It uses up a considerable amount of screen real estate.

    You wouldn't want to be scrolling a lot on a mobile device, since you should see the entire table on a single screen by itself. Hence the table control would be suitable only for desktop and TV apps.

    As for CSS styling (for controls) with JavaFX it is restricted to desktop apps only. It is one of many things I have overlooked when creating the competition proposal.

  9. This is one for the best JavaFX control, which can be used in any JavaFX application.
    software application maintenance