Update: since announcing the JavaFX UI controls sandbox I have announced the ControlsFX project, which is a more convenient way to get access to a number of controls that do not ship with JavaFX. Check out the ControlsFX website for more information.
This is something I’ve been waiting a really, really, really long time to announce, but it has finally happened. Today I am so pleased to announce the opening of the JavaFX UI controls sandbox repository on OpenJFX. This repo is a fork of the JavaFX 8.0 controls repo, but will occasionally sync from there to keep it up to date. This repo is intended for OpenJFX developers to put their ‘toys’ until such time that they get called up to the big leagues for inclusion into OpenJFX itself (although there are no guarantees that this will ever happen). This means that the controls are functional, but most probably not feature complete with a finalised API or any significant documentation.
The reason why I’ve been wanting to open this sandbox up is so that members of the JavaFX community can get super early access to our controls as soon as they reach the most minimal level of maturity, and help guide them along their paths to adulthood. I also wanted to do this as it takes a long time between developing a UI control and having it appear in a JavaFX release. This is something that has frustrated me, and a number of you, to no end.
From the get-go there are a few controls in this repo that you may be interested to play with and give us feedback on. They are TreeTableView (although note this is currently undergoing a total rewrite), Dialogs (ala JOptionPane from Swing), TableView cell span support (look at TableView.spanModel for more info), and a RangeSlider control. These controls will develop over time, but of course we’re always on the lookout for others who want to improve these controls for us. If you’re interested specifically in tending to the new controls in the sandbox, please email me and we can discuss it.
So, for those of you interested in taking a look at the code, you can do a ‘hg clone’ of the following url: http://hg.openjdk.java.net/openjfx/sandbox-8/controls/rt.
Now, I guess this post wouldn’t be complete with a few screenshots of the early in-progress controls. Enjoy! 🙂
This is great, as it will boost development speed and participation.
But, isn’t it duplicating JFxtras somehow?
Yes, it is a code sandbox just like JFXtras and many other projects. For me, the reason why it exists (rather than put the code into JFXtras) is simple: I’m an Oracle employee, and it is very hard to ‘give away’ code that I have developed as part of my employment to a third party open source project (especially if I ever want to possibly include it in OpenJFX). Conversely, putting code into a OpenJFX repo is very easy for me.
In other words, my intention is to neither duplicate nor compete with JFXtras (in fact, I spend a small chunk of my time supporting it behind the scenes). My intention is to get source code out so people may use it – rather than have it be locked up where it is of no use to anyone.
Certainly a good idea. Too bad this is for FX8. Which is a year out – more like 2+ years until corporate customers adopt it. At the end of the day, that’s what matters…
I like those dialogs though. Nicely done.
There is nothing that particularly makes these 8.0 controls – it just happens to be the SDK I have on my machine. In fact, most of these controls were done in 2.2 and updated to use the 8.0 APIs.
I would love to see someone mirror the controls elsewhere with 2.2 support (maybe someone from JFXtras can do that). Certainly the dialogs should move across with no (or minimal) code changes at all.
This is great – I’ve been needing JOption-style dialogs for a while now. I tried very crudely to import the Dialogs class (and resources) into my own project, but have run up against some problems. I get a severe log message complaining about the -fx-skin property not being set for the window buttons on the dialog, and the dialog itself is transparent with no borders (the title, content and image render correctly though). Has anyone else successfully got the Dialogs class working under 2.2?
Thanks anyway, I’m looking forward to 8.0, but I’m glad you’ve found a way of making this available in the interim.
This is good news, particularly adding the dialog box control.
Questions regarding dialog boxes are the most frequently asked in the javafx forum.
Yes – I too have seen a lot of questions on dialogs, which actually was rather frustrating for me as I’ve had these dialogs sitting on my machine for six months or more, and I’ve been trying for just as long to get my dialogs out! 🙂
Big thanks Jonathan !, I like the table span control and those nice Dialogs ! But in my daily development I really miss JInternalFrames counterparts in javafx. I know that MDI now is considered and old programming model, but it works for my company. Is there anyway to mock JInternalFrames in javafx? if not, is there any example on SDI Business interface UI ?
Thanks again, and keep on the great work !!
You might be interested in this: http://mihosoft.eu/?p=365
Awesome, thanks a lot!
I’ll surely use the dialogs.
I think I’m going to contribute myself a few tools I developed for the community (it’s mostly a few helper classes dealing with things such as TableColumn width binding)
That would be great! 🙂
that look great.
But do not forget that we are now in the time of touch devices.
Should we prepare the controls for touch devices as well ?
Is it possible with just the CSS ?
These look great, and its night to see the TreeTable control in something other than the screenshot posted on the jira 😛
I have a question about the dialogs though?
What made you go down the route of having a Title, Subtitle and message area? Its an interesting concept that I haven’t seen before and I was just curious what drove you to create dialogs in this form.
Great work! I really like the “JOptionPane”. I think there is a small inconsistency in the icons, the lightning in the “?” is different from the lighting on the other “JOptionPane” icons.
It would be great if this run on 2.2 so we could started, testing and giving feedback right now.
Yes, the “?” image was from a different icon pack and will need to be replaced in the future – it is just a placeholder for now.
I would love to see someone backport it to work in JavaFX 2.2 – most probably by forking it into JFXtras or somesuch. The amount of effort would actually be minimal.
I really needed the simple JavaFX Dialogs for teaching a programming course. Thanks for opening up the repository, Jonathan!
To provide an easy way to use JavaFX Dialogs with JavaFX 2.2 I created a jar file with all the necessary files. See the GitHub repo at https://github.com/marcojakob/javafx-ui-sandbox and the instructions in this blog post: http://edu.makery.ch/blog/2012/10/30/javafx-2-dialogs/
I had to fix some bugs, especially in the input dialog, to make it work.
This might be a start. But we will still need a repo where changes made to the sandbox-8 could easily be merged into. Any ideas?
Excellent work! I’m so pleased 🙂
If you have patches for the 8.0 repo (that fix bugs) I will happily fold them back into the sandbox. If you want to fork the code and continue the 2.2 version, I would recommend a site such as bitbucket.
Hi Jonathan, thanks for the great work.
As mentioned in Marco’s blog comments, I would like to see some mechanism for custom dialogs, i.e with a completely separate stage:
Dialogs.showCustomDlg(…, Stage dlgStage, Class returnValue, …)
You should talk to Marco about adding that to his repo. It would be great to see it added.
The big Question for me is when will these Components and the rest of JavaFx run on Andriod and IOS? I think this will lead to adaption of this technology.
Really interesting. As mentionned in the jira, i’m interrested about a javafx 2.2 backport of treetable component.
(already tried to extract it, but it’s complicated)
I need a few popup dialogs on JavaFX2.2. Unfortunately, popups on JavaFX are not simple like they used to be on Java Swing. Do I need to use this library to do so? Where can I download it from?
how do i use this on javafx 2.2??
Hi, it’s really interesting, i tried to use the code but it’s too complicated.
how can we use the tree table component in our java fx application before the JDK8? Thanks
Unfortunately the TreeTableView control is for JavaFX 8.0 and above only.