Java SE language still swinging

Following the announcement of a new project for (small) Java language changes for JDK 7, Joe invites you to put your penny in the slot with a final call for proposals.

Another place where interest in the future of Java is strong. Such as Jonathan Giles call for a 'Swing 2.0', calling it time to break compatibility in order to modernize the API, which has attracted a large number of comments.

Thanks for the link Danny,

I, along with many others, would love to hear your thoughts regarding any Swing 2.0. From my blog it is quite clear that there is a subset of developers who are not ready for JavaFX (or JavaFX is not ready for them), who are capable developers and who want a Swing-like API which offers some - not all - of the features outlined in my initial blog post and the subsequent comments. Things like use of generics, enums, varargs are fundamental to a Swing 2.0, but there are so many good ideas in the comments that could make Swing an awesome multi-platform API.

Sun could do much worse than support a Swing 2.0 project. It's time to realise how important Swing is to so many developers - developers who aren't swayed by JavaFX, because we need to create professional applications that integrate with the desktop, that run in enterprises, that need to look like a normal application does. Swing, and hopefully Swing 2.0, is the future for these developers, not JavaFX.


Posted by Jonathan Giles on January 28, 2009 at 04:44 AM PST #

Done right, Swing 2.0 combined with Jigsaw could revitalize "normal" client GUI programming in the Java platform. One would simply use Swing 2.0 in new projects from Java 8 and onward and Swing 1.0 wouldn't even be loaded courtesy of Jigsaw.

IMO the project doesn't even have to be that massive. We already have the basic blueprints, Swing 1.0, it just needs to be massively cleaned up and brought up to 2008. For instance, the Look&Feel classes shouldn't have to be rewritten that much, just slightly ported.


Posted by Mikael Grev on January 28, 2009 at 03:54 PM PST #


Mikael and I share a vision for Swing 2 - I almost feel he is following me around the net sometimes :) - and we hope you can share that vision with us. We are realistic about our goals, pragmatic in our approach, and passionate about the final outcome. I really encourage you to at least consider the Swing 2 vision. You have two people here who are really committed to making desktop Java better, and numerous others, all skilled in Swing development, and clearly understanding the areas of weakness in Swing. Swing 2 is as much about acknowledging the work of others in the community (Mikael Grev with MigLayout, Karsten Lentzsch with binding and validation, Kirill Grouchnikov with his varied projects, SwingX developers with painters, etc, etc, etc), as it is about making the existing Swing API cleaner and more productive.

The community desire for a cleaner and updated Swing is evident in posts to my blog and to me personally. I feel that I am not just representing my own desires, but those of the many people who took the time out to +1 the Swing 2 vision, and add their own 2c along with it. Swing 2, done right, will be a great API, it just needs the opportunity and support of Swing-friendly people.


Posted by Jonathan Giles on January 28, 2009 at 04:10 PM PST #

I think JavaFX should not be instead of Swing. JavaFX can be another way to implements RIA, but Swing should also be developed. Maybe Sun spent too much on JavaFX and wants it to be Swing 2, but in my opinion JavaFX is suitable for Internet applications because it is easy to write and just like other script language can seperate Java and Web-Front software engineer, it is not suitable for desktop applications. Some of its effect is really cool and easy to get, but this is not so important to desktop. Swing 2 may be also added these effects, but its API should be just like Swing 1 now. Maybe we can develop Swing 2 in an independent way as Python v2 and v3, or just improve on current code, that's all right, what's important is its API should be like Swing 1.

Posted by Cheng Liang on January 28, 2009 at 09:24 PM PST #

First, let me preface this by saying I have almost 10 years experience with Swing.

I have yet to be convinced that I should switch over to JavaFX for those apps where I consider Swing to a solution. If necessary, I will develop a web client with something like Spring/JSP/JSF/Tapestry or GWT and a desktop client with Swing (if that is what is needed), both talking to server web services of some sort. Maybe once in a blue moon I might use an applet in a broswer, but most of the time I would opt for using something more ubiquitous; some mix of HTML/JavaScript/CSS in the browser and Java on the server side.

I have no use for animation, non-standard backgrounds, or flashy crap in an enterprise desktop app. In a business enterprise apps, users work with tables, forms, trees, spreadsheets, etc. not something that looks like the iTunes cover view.

From time to time I have seen some OSS projects that would exist on top of Swing to simplify it, but I generally get along okay with Swing itself - much more productive than when writing a web client with any framework. Some criticisms of Swing:

Swing could be simplified. Better and simplified layout managers. Application frameworks. Components that have modern features and scale (try loading a million objects into a tree or table). Why was Swing Labs abandoned? I would really like to see their components polished and expanded on.

I could care less about the latest L&F du jour from Sun. Make the native L&Fs work as close to the native UI as possible and make them work with themes, etc. - in short, no one should be able to tell that a Swing app is a Swing app and not a native app. I always use the native L&F unless there is a very very very good reason not to.

Posted by Developer Dude on January 29, 2009 at 01:03 AM PST #

I too feel the urge to speak up on behalf of Swing. A lot of great work has been done by, among others, people mentioned elswhere in this thread. We can't and we won't abandon that work! It might even be the time for correcting all those small, annoying bugs which has haunted Swing since it's inception, sigh...

Anyhow, when creating enterprise applications, Swing is a really attractive alternative for a lot of reasons. And, I agree with Developer Dude that i.e. the lack of consistent native l&f is an obvious and annoying downside. That said, I can't concur that enterprise applications should be robbed of a treatment to some flair. There are enterprise users out there who appreciate beauty in their applications as well. :) Not to mention how we rapidly could create some really great custom components in a quick fashion. I, for one, would like to see JavaFX components in Swing applications...

Posted by Hans-Gunnar Vold on January 29, 2009 at 05:00 PM PST #

Sure thing - thankyou for all your suggestions here and over at Jonathan's blog.

I'll post something early next week about our thoughts on where Swing is headed, the ways we plan to keep contributing to it and how we see some of the specific suggestions fitting in - or not - with the way we see things here.

Posted by Daniel Coward on January 30, 2009 at 06:36 AM PST #

Thanks for the update Danny - I look forward to your update next week. Could you post a comment in this thread when you do make your update, so that I get alerted when you do (alternatively, feel free to email me).


Posted by Jonathan Giles on January 30, 2009 at 06:39 AM PST #

What about fixing existing components in Swing 2.0. People including myself have bashed over and over about JFileChooser: and It really needs work. It will also be interesting to be able to call JavaFX in an easier manner.

I'm currently using the SWT FileDialog on Windows using AWT_SWT bridge, it works but it's a hack that doesn't work on Linux or Mac.

Swing definitely needs an overhaul. There are so many good developers out there. I've played with JavaFX it's nice but it'll probably take 2-3 years if not more to be mature and to have the components that Swing and Swingx currently offer. Also in an Enterprise environment it's hard to see someone doing animation except if you're building consumer apps.

Swing is a very powerful toolkit. Sun needs to look back at its decision to stop supporting Swingx. They went all JavaFX. Is there any real JavaFX app yet? There are none. As for Swing there are countless large apps out there: Limewire, LightZone, Maple UI, is written in Swing and many behind the scenes enterprise apps. Also let's not forget Bluemarine. Kudos to Kirill and Mikael for their great open source work as well as to all the Swingx contributors.

I've written a Facebook photo uploader, Bloom: , in Swing to show that RIAs could be written in Swing and it's in the top 20 of Facebook desktop apps.

Danny thank your for your openness and great work, we're counting on you to make Swing sing :)

Posted by Carl Antaki on February 02, 2009 at 11:25 PM PST #

Forgot to mention the great JGoodies and GlazedLists projects.

Posted by Carl Antaki on February 02, 2009 at 11:54 PM PST #

Can't wait to hear when Swing 2.0 gets started. If, like myself, product owners need to consider technologies other than Swing then JavaFX may not be top of the list. I own the Altio product ( which is a Swing based solution for creating RIA/Rich Enterprise Web Applications, I need to plan the next 2 years - should I move to another technology?

What happened to javafx.ext.swing.Canvas, this was the one thing that made the use of JavaFX in Swing viable. The later solutions appear to be horrible hacks.

The development team at Altio are all for Swing, and there are a lot of solutions in financial services written using Swing without using Altio.

Posted by Gary Thompson on February 03, 2009 at 01:46 AM PST #

Post a Comment:
  • HTML Syntax: NOT allowed

A blog all about Java in all its flavors on all client platforms from smartcards to desktops and everything inbetween.


« April 2014