Swing links of the week: April 13, 2008

April 13th, 2008

Here are some Swing links that you might have missed during this week:

  • Roman Kennke kicks off the week with the announcement on Caciocavallo project. It will implement his proposal for OpenJDK challenge and concentrate on three areas:
    • An implementation of the AWT Toolkit interface (java.awt.peer and a bunch of classes in java.awt), that doesn’t make use of Sun internal classes.
    • An implementation of the AWT Toolkit interface that subclasses Sun internal classes and reuses most of the infrastructure. (This is named Caciocavallo-NG)
    • Patches to OpenJDK to enable the above
  • The trend of using Java UI toolkits as “virtual UI machine” continues with the proposal of Glimmer project in Eclipse community. Over the past few months we have seen a number of attempts to “wrap” Swing in a variety of languages that use JVM as the runtime. These include Groovy, JRuby and Scala. While up until now these attempts have chosen Swing as the underlying “platform”, Glimmer will use SWT to create a JRuby DSL for creating UIs. The project creation review is scheduled for April 16, and you can peruse the PDF slides of creation review.
  • On a related note, Gregg Bollinger explores the Groovy SwingBuilder on a simple login panel using MigLayout. He then follows with an example of integrating Groovy with Java using the new Script API, and Danno Ferrin replies with a better way to achieve the same result.
  • Nick from Palantir writes about a collection of time chooser components. These explore various text-based and rich ways to select time in Swing applications. WebStart application and full sources are provided.
  • Christophe Le Besnerais continues exploring the JNA project to play with translucent windows. In the new entry he provides an implementation of Mac OS X transparent panel.
  • Alexander Potochkin notes an unexpected and an unwelcome side effect of temporarily turning off the double buffering on the current repaint manager – the “gray-rect” fix is disabled :(

For those of you interested in more technical background on composite rendering in general (and how it subsequently applies to Java2D), the following links might be of interested. Found via a very informative blog of Russ Cox: