Here are some Swing links that you might have missed during the last week:
- Chris Adamson provides his own take on my interview with Richard Bair, particularly highlighting Richard’s statement that JavaFX is effectively Swing 2.0. This has also been picked up by Josh Fruhlinger at Javaworld.
- Devoxx has brought some news about the future of SwingX and Swing in JDK 7. As reported by Jan Haderka, Alexander Potochkin will be replacing Richard as the official SwingLabs project lead. In addition, some of the SwingLabs sub-projects will be part of JDK 7. This includes App Framework, JXLayer, Painters API and DatePicker. A gigantic missing piece is the BeansBinding, and this is already being queried by the community – update: see what Richard had to say about this. Another interesting piece is concerning the inclusion of painters, and how they will play with Nimbus’ own painters, as well as the level of possible customization of core Swing components.
- Christopher Deckers has announced release 0.9.7 of DJ Sweet project that aims to bring sophisticated components for SWT. The main focus in this release is the improvement of the Web Browser control, and the addition of a Flash Player with a simple API.
- Alexey Ushakov is the technical lead for JWebPane component, and he has finally revealed tentative availability schedule for this project. Contrary to my prediction, it looks that this component will be lightweight, providing Java2D-based implementation of WebKit painting hooks. Alexey’s comment on licensing issue is questionable at best, and has been discussed briefly by Remy Rakic.
- Alex Ruiz is writing about an interesting usage of FEST Swing library – to analyze the UI hierarchy of JavaFX applications.
- A few months ago there was significant blogosphere activity around using Swing as a foundation to build UIs in JVM-powered languages, such as JRuby, Scala, Jython and Groovy. Unfortunately only one camp has remained steadily active throughout the time – congratulations to Groovyheads for persisting in analyzing the deficiencies of pure Swing development and pushing the envelope. Danno Ferrin has announced release 0.1 beta of Griffon, and Andres Almiray writes about plugin support in Griffon. Andres is also busy experimenting with the builder support for both core Swing and third-party Swing components, and this weeks he has announced two new sub-projects, SwingPad and FlamingoBuilder.
- After last week’s entry on skinning the JScrollBar component, Ken Orr laments the lack of visual tools for assisting the creation of Swing look-and-feels and hopes to see the Nimbus designer released soon. In the comments, Remy Rakic speculates that it will be soon morphed into JavaFX designer.
- Jeremy Wood delves into Java2D, presenting an extensible implementation of charcoal stroke.
And now for the spotlight of the week. Java IDEs such as NetBeans and IDEA has frequently been quoted as examples of large Swing based applications. In the consumer-facing market, perhaps the most widely used application is LimeWire. This week the developers of LimeWire have announced the first alpha drop of the next release. The first two blog entries are out, and hopefully will be followed by more details on the technical implementation and integration of such libraries as SwingX components and painters, Glazed Lists, MigLayout and XULRunner. Click on the thumbnail to see a larger screenshot of LimeWire 5.0alpha.

Here are some Swing links that you might have missed during the last week:
Quite a few releases announced this week:
Devoxx 2008 has started today, and it has a few Swing related presentations:
With not a single feature from my JavaFX “look forward to” list available in the first release, it’s time to see what Sun is going to announce at Devoxx. Over the last few weeks there has been significant (in number of dozens) amount of submitted and closed bug reports in integration between heavyweight and lightweight components for the first two builds of 6u12. Risking yet another prediction (the one about JDK / module / OSGi was quite right, and the main discrepancies are already being criticized by the OSGi community), i would say that the web browser component is in the works, but as a heavyweight implementation. This would require closer cooperation with the (lightweight) rest of the UI toolkit. Share your thoughts in the comments.
Here are some Swing links that you might have missed during the last week:
- Jeremy Wood has been a busy blogger this week. First, he compares different approaches in using spinners for specifying length measurements in different units. Next, he presents a dialog to layout several tiles / cells on a print page. And finally, he closes the week with a partial implementation of Mac “Windows” menu that tracks the list of currently open top-level windows and their respective states.
- Olivier Gout has a prototype of WYSIWYG theme designer for Nimbus. The “official” Nimbus designer promised at this year’s JavaOne is nowhere in sight, and only time will tell whether this new attempt will outlive the growing list of Synth designers / builders mentioned in Swing Links of the Week edition of March 23, 2008.
- Patrick Ahlbrecht has a skeleton implementation of persisting window geometry and toolbar location between successive launches of an application window.
- Kai Toedter has written a demo application that shows how to use OSGi Declarative Services (DS) and Spring Dynamic Modules (Spring DM) together with Swing UI (and the Swing Application Framework, JSR 296). The Person Manager project is licensed under EPL.
- William Chen has announced his work on the Visual Swing Designer for Eclipse.
- Adam Bien continues to favor Swing over SWT in his two-part attack. Starting with how to make your Swing coding more efficient, he then continues to address the perceived Swing weak spots. From reading these and previous postings, looks like Adam holds a particular dislike towards SWT tables, and i couldn’t disagree more. Just like it takes quite some time to fully understand your way around Swing tables (including models, renderers, editors, listeners and much more), it takes a little bit more than a few suggested hours to switch to the SWT / JFace approach. This is not to say that one is clearly better than the other. It’s just that if you come with prejudice or a very strong knowledge in one, the other will seem clunky, over engineered and convoluted.
- Two interesting Swing-related threads on the Google group for Javaposse. The first addresses the misunderstanding of the painters issue and the community handling throughout the entire process, and the second calls for community questions on JavaFX.
- Andres Almiray has announced release 2.0.1 of JIDE Builder and 0.1 beta release of GfxPad.
- Roman Kennke continues his work with Java2D, writing about first Java2D pipeline implementation on top of the DirectFB hardware abstraction layer.
- Ken Orr has announced release 0.9.3 of Mac Widgets for Java. Major new addition in this release – iApp style scroll bars. Is it me, or is the reflection of the new scroll bars incorrectly flipped?
- Clemens Eisserer reports that his XRender pipeline has been integrated into the IcedTea fully open sourced port of OpenJDK.
In three days, JavaFX Desktop 1.0 will be officially released. I have been skeptical about JavaFX over the last few months, and while this may be attributed to general inclination of programmers towards being “entrenched” in the technologies that they know, there are other reasons as well. Aside from a few unnamed technology partners that were participating in shaping the capabilities of this release, the community has been effectively shut from lending its hand in commenting, testing and evolving the platform. We have long heard about “being blown away” by the new functionality being brought by JavaFX to the RIA market, and this week we will finally see if it is going to live up to the marketing hype.
Personally, i will be very glad to see at least one out of the following ten items being available for JavaFX, as well as cross-platform Swing applications come December 4:
- 6u10 / 6u11 for Apple – [update] see bug 6761033 for some interesting news.
- Full java lightweight rendering of SWF files even without installed Flash engine
- Full java lightweight rendering of H.264 files even without installed codecs
- Adaptive video streaming based on the client CPU and network utilization
- Video capture and creation
- Fully skinnable lightweight browser component based on WebKit or Mozilla / Gecko
- Inclusion of form-oriented layout manager
- Support for high level shader language (HLSL) for hardware accelerated custom effects
- Nimbus designer
- JavaFX.com with JavaFX-only applet driven content
And is it me, or are we going to see Sun ditching its own module initiative and move towards restructuring JDK as a collection of OSGI bundles?
Here are some Swing links that you might have missed during the last week:
JavaFX 1.0 is one week away, and the full feature list is still unknown. However, an interesting bug report has found its way to the bug parade (bug 6770914):
http://javaweb.sfbay.sun.com/~ngthomas/javafx/mediaplayer/test.html
This is the javafx media player applet. At the bottom of the applet, there are three buttons, which will trigger a javascript -> fx call:
document.getElementById(“app”).script.playVideo(url);
with will change the video clip playing inside the applet. It works with 6u10, and our latest 6u12 nightly. But with 6u11 b03, document.getElementById(“app”).script is undefined/null
Looks like an applet playing media and being controlled by JavaScript associated with HTML buttons. Is this an example of enhanced applet support? At this point, it will take nothing short of a spectacular collection of applets to make them a viable competitor (and no, dragging the applets to desktop is not going to be it).