Swing links of the week: December 30, 2007

December 30th, 2007

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

  • Nazmul Idris has created a tutorial on SwingX painters. The painters generated quite a lot of heated discussion and development about half a year ago, and there were passionate talks about restructuring the entire Swing painting pipeline around the painters. It seems that once the big plan was shot down by the Swing team (and quite rightfully so since that would result in breaking a lot of existing code), no effort has been done to search for alternative ways to introduce painters into the core Swing library. The active development of SwingX painters seems to have died pretty much after that.
  • Mikhail Lapshin answers a question posted on Swing forum on how to create menus that pop up only on mouse click (and not on mouse over). While this might confuse a user (i’ve tried a few native Windows applications and they all pop up menus on mouse over), some applications can still find this technique very useful.
  • Eugene Kuleshov posts a riddle on achieving the specific layout with SWT, AWT or Swing. The simple answer is – do not use titled borders and nested panels. This has been long considered a bad design decision that adds unnecessary noise to the form. Use white space, tabbing and separators to create visual groups.
  • Jan Haderka continues working on various parts of SwingX, and this time he presents his improvements on BusyPainter and JXBusyLabel. The demo comes with a very useful option to play with the settings and then generate the matching code (copied to the clipboard). My only recommendation would be to drop some of the irrelevant features (such as trajectory shifts and dimensions) and look at some other ways to convey infinite progress (warning, high visual overload :) )
  • Andres Almiray wraps up version 0.4.3 of GraphicsBuilder, showing its many new features (the multipaints example looks very good) and hints at the forthcoming support for SVG in version 0.4.4.