What controls is JavaFX missing?

JavaFX 1.2 added quite a few controls that were missing in the original release. Up until then, there were only a couple. Sure, you could piggy back onto Swing controls, but those feel old and outdated. These new controls added a lot, but unfortunately I still feel a little limited by the controls. One of the biggest benefits to JavaFX though is, you can just roll your own. It may not be easy, but its a heck of a lot easier than doing it in straight Swing.

I decided to put together a little poll of some components that I know are missing. If you have any components that you want added that I missed, just leave a comment and I’ll update the poll. I limited the answers to only three, that way you can’t just say you want everything. ;-) You have to actually pick which ones matter the most to you.

What controls do you want added?

View Results

Loading ... Loading ...

text
One of my motivations for making the poll was to gauge the desire for a multi-line text node. I have personally been playing with making one and I’m curious if anyone else feels a need for these or if its just me. A quick example of it is on the right.

As you can see from the picture, each word can have a different set of attributes (font, bold, italics, size, color, etc…). Words wrap on to new lines as it is resized. The rendering of this was not too hard to set up. Where it’s getting to be a pain is the editing of the words.

When you edit a word, you potentially have to fuse it with other words (delete the space between two words), break apart the words (press space in the middle of a word), handle multiple paragraphs (new line), etc… These are all strange scenarios, and there are lots of edge cases (press backspace at the end/beginning of the document).

I don’t know if I’ll ever publish this, but it was something that interested me. I have a new found respect for text editors.

It does leave me curios though about what everyone feels is missing. I’m willing to bet if the community was outspoken enough, several controls would either be added to JFxtras, other community projects or maybe even to JavaFX itself.

 

10 Responses to “What controls is JavaFX missing?”

  1. Roger says:

    This poll is ugly, the “Table” component should be the first one!.

    That’s the reason I’ve not voted this poll.

  2. Drew says:

    :-) It is just a standard wordpress poll – however I added ‘Table’ per your suggestion

  3. hansi says:

    i really think the list can be extended far beyond that.
    Like… I wish that “multi-device gui-editor” that keeps showing up in video would make an appearance one day.
    in general javaFX still misses TONS of new features (recording audio/video doesn’t work without signed applets and third party libraries, afaik no glsl or comparable technology, etc.).

    the only thing that seems well developed is the language itself (i _love_ the way you can throw around with arrays in fx, the iterators are powerful; the mix between functional and imperative programming is very well done), but everything else is so clumsy and semi-complete that i couldn’t even be bothered to try it out beyond the hello world samples.
    don’t get me wrong – i closely follow javafx development with excitement, but i think it was released too early. and with the announcement that closures might make it into java7 i even think about not learning fx ever…

    okay, i got a little distracted here. my favorite component would be that styled multiline text input you suggest :)

  4. Drew says:

    Yeah, I don’t know about Java 7 though. It seems to be stuck in limbo. Also, it will take forever to get Java 7 deployed to all of the clients that JavaFX currently targets. Besides, even with closures, I still don’t think that the Java language compares to the JavaFX language. Don’t get me wrong, I love Java…but JavaFX is just very elegant as a language.

    I agree, the libraries need work…but there is some real power with the existing components. I’m excited for the next release too, but I don’t know if they’ll be adding too many components. To me though, adding components should almost be priority one. Silverlight has a ton of good components.

    But I agree, there are some significant issues with JavaFX as a whole. The ’signed applet’ fiasco is kind of ridiculous. I almost think it would be wise for JavaFX to detect if they’re running on an older JVM and then ask them if they would like to take a few minutes to download the latest Java. Long story short, it has a long way to go, but it definitely has potential (in my mind at least)

  5. Tbee says:

    If you think signed applets is a fiasco, then I wonder how many viruses may be installed on your computer. The security model behind Java always has been one of its strong points. Because of simple things like boundary checks on array, Java has never been a vessel for viruses and the like. So yes, if an applets needs to access system local resources, like a camera, you have to grant it. That way your computer cannot sneakily spy on you.

    A date picker (called Calendar picker) already is available in JFXtras. I talked to the Sun people and they said they won’t include one in the next official release. I expect the next JFX to roughly have the same components as swing; textarea, table, etc.

  6. Why you ask about components? JavaFX don’t need new components. JavaFX need compatibility with Swing. Swing has got all you need for GUI.

    See CRUDfx SDK for JavaFX (http://code.google.com/p/crudfx/) – Layouts, Grid/Table, Tree, Text/Password components, Localization tools, User preferences util, Tools for asynchronous task, Bridge to Web Services (XML, JSON), Bridge to SQL Servers (JDBC), Google Map component, Sound synthesizer, Other tools

  7. Drew says:

    @Tbee – while the security model is technically impressive – the implementation of how it asks the user for authority is not. I completely understand what they’re trying to do, but take the game Clash for example. Every single Mac user turns away because it asks for complete access to their computer. Why does it ask for that when I am not doing anything in my program that requires it? Because JavaFX is trying to use the underlying hardware to speed things up. Technically, that is the right approach, but almost every user that left a comment says “no way I’m using a program that requires unrestricted access”. While I’m not arguing with the technical benefits, one does have to wonder if it could have been done better (and yes, I realize this isn’t a problem with newer JVMs, but lets face it, new JVMs aren’t as prevalent as we’d like them).

    @Sergey – yes, Swing is a powerful UI, but for one, it is only available for the desktop model. Also, Swing itself has a limited set of components compared to say Silverlight. Also, Swing doesn’t play well with JavaFX components (you can wrap a swing component into JavaFX, but I don’t believe it is supported to wrap a JavaFX ‘node’ into a Swing ‘Component’). And lastly, if Swing truly had all I needed for the GUI, then why does JavaFX exist in the first place? Don’t get me wrong, I love rapid prototyping with the NetBeans GUI tool for Swing applications, but JavaFX just has so much more potential.

  8. C.K. says:

    You might want to put “combobox” on the list. It’s hidden and said to be incomplete in its current state.

  9. Drew says:

    Done. Thanks for the suggestion!

  10. [...] JavaFX. While the 1.2 release had quite a few added, there were of course more that are needed. I made a poll about which should be added. The good news is that there is some buzz stating that the next release [...]

Leave a Reply