So my question is: What is a good UI framework to use for a desktop application? What are the pros and cons of some of the choices?
But for a seasoned coder who just wants to have fun delving into GUIs, I would suggest the new kid on the block -- JavaFX 2.0. Still in Beta, with the fortnightly builds still introducing new API (and removing some too) and involving verbose coding until Java 8 introduces closures, but rich on appearance and visual gimmickry.
as I mentioned Swing is not going to become a part of the JDK
Did you mean SwingX? Swing has been a part of the JDK since around 1.2.
It's simple. - If you are an experienced Java developer, you would find Swing fairly easy to pick up because it's very "Java-ish". No need to write XMLs, properties files, etc...
It's got LOADS of tutorials on the web. - Stuck on something? Just google it and you get lots of results.
It's very generic. - It comes with JDK - no need extra library
It is ready on all Java IDEs - If the IDE supports the common Java libraries like util, io, math..., I don't see why it doesn't support awt and swing
It is platform independent both in terms of expression (Java) and implementation (Look-and-Feel). - Seriously, it's very easy to switch the look and feel if you want to write a platform independent app.
It's got a good handful of different UI elements for you to choose from.
It is highly extensible and customisable. - You can create/extend your own UI elements easily if that is required.
Manny Garcia wrote:I've noticed that Netbeans has a lot of support for Swing though as I mentioned Swing is not going to become a part of the JDK.
I am pretty sure for the next five years, at least, Swing would be still the fundamental UI framework that comes with the basic JDK.
Desktop UI design is not like Web UI. The web ui changes very quickly but if you look at Desktop UI in the last ten or twenty years, it doesn't change much. From Windows 3.1 to modern days, other than the look and feel, what's really changed? You still get windows, menu bars, tabs, scrollbars, buttons, text fields, radio buttons, drop down box, grid/table, etc... What's really "new" from all this time?? Swing can pretty much supports most of the modern UI design requirements.
I can't speak for the future, but I seriously don't think Swing would become outdated or not catching up with time in the next few years. May be the look and feel that can change from years to years, but we are still clicking the same old buttons, viewing the same old windows and dragging the same old scroll bars.
What is a good UI framework to use for a desktop application?
I have worked on a Java desktop application which is based on JIDE framework:
It is a great Desktop UI framework. Have a look.