« Java WebStart and Desktop Integration | Main | Broken Fingers and Resumes »

JDNC and the SwingX Project

After a year from when it was announced finally we see something from the JDNC project. Let me say I think it has a brighter future than the JSF project. Web Clients have their role, but just like Television Actors sometimes they overextend themselves. On a quick pass it looks a whole lot like XAML will be for longhorn, except you don't have to wait until after the Star Wars Episode III Special Edition DVD is out to use it in production.

But I am straying from the point I want to make. XML is the topmost layer of the JDNC project. What I am more excited about is the standard swing component extensions, which comprises the lowest layer of the JDNC project. For the level of Swing that I have been coding at those provide the most tangible value today. Why? Couldn't I just write or fork a TreeTable or Form interface of my own? Yes I could, and it would forever live inside the walled garden that is proprietary apps. Don't get me wrong, I've already done it for a DataPicker widget. But what this offers is a common standard extension to the swing components from Sun, one where the components might one day make it into the JDK.

Back when JDIC was announce I nearly wrote an article calling for a STSC project: Standards Track Swing Components. Some collector project on java.net where common swing components could try and evolve in some sort of a standard environment and possibly be included in the standard J2SE one day. It's much to late late at night for me to recount the details of how it would have gone down, but it would have been a standard set of common widgets that have some brand of authority. For example: look at the number and quality of data picker widgets, wouldn't it be nice to have a standard one like MFC does? And look at the widgets that Java Look and Feel (and the advanced topics) describes that do not exist in the JDK: sorting tables (two ways none the less), tree tables, Wizards, badged icons, and even toobar drop downs. All this in a published "do this" standard and no common implementation. No wonder VBers run from swing, they see cool stuff like that and say "I'll stick with MS" when the article starts talking about TableModel, EventListeners, and when to call repaint().

The SwingX subproject in JDNC can fill this role in my opinion. In fact they have a good portion of the items I just listed as part of their standard package (althought the date picker needs serious help, I don't think it will be hard to get it). Two suggestions I would have would be first to formally make SwingX a subproject of JDNC. Next they need to either drop the LGPL for a variant of the MPL or require a dual license for all submitted patches so that contributions can be brought into the core Java Runtime in the Mustang or later release. A Joint Copyright Assignment is required to contribute code.

If those things are done then when a kewl component like the JSpinner is released, it can first be hashed out in SwingX and then placed in the JDK later. Telling people that they have to upgrade their client JDK just because I used a spin box for number entry got me some strange looks and a good bit of grief.

Comments (2)

Thomas Zander:


First you say how good it is that new components come from Sun since they can be put in the JDK at one point; then you say that its bad that you have to wait for a new version since all you use is JSpinner.

I'm confused; why do you feel its a good thing to have new widgets in the JDK?? I hate to see components fixed in a release we know will not be re-released for another 18 months. The flexibility of seperate libraries is much more important for me then the being-the-standard part.

For instance; the standard JSpinner is too buggy to add various usability features to, so I am seriously considering writing one from scratch to allow me to give my users the experience they deserve. I'm sure you agree that that is not the way it should be...

What do you think?

Danno Ferrin:

Good point, my original musings for the STSC included consideration for this issue. I intend to follow up with a blog posting.

Post a comment


This page contains a single entry from the blog posted on June 24, 2004 11:26 AM.

The previous post in this blog was Java WebStart and Desktop Integration.

The next post in this blog is Broken Fingers and Resumes.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.33