Hello all. I've been writing server-side code for a long time now and was looking at doing a few projects just for my own enjoyment. Previously everything I've done has had a web interface, usually written by someone else. I want to do a few projects for fun that are stand alone desktop apps and need to pick a UI for it. From what I've been reading Swing seems to be on the road to obsolescence and was wondering what options I have out there. I could use either Eclipse or Netbeans, I'm agnostic as to which to use. 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.
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?
IMO Swing (1) isn't yet 'on the road to obsolescence' and (2) has the best availability of tutorials and community support.
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.
There are no new questions, but there may be new answers.
If you are new to UI development, Swing is the best choice you've got.
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.