I’m always excited to see an announcement of a new look and feel (or even a new skin in an existing look and feel). Writing such a library is quite a complicated task that requires a lot of resources and perseverance. And so, it is my great pleasure to see two new third-party look and feels announced in the last couple of days.

The first is A03 and comes from Davide Raccagni. Very nice and polished visuals, a lot of smooth animations and transitions, and even the initial theming support. It has a few interesting ideas that i would like to incorporate into future versions of Substance, such as “flowing” menus and extended file chooser. The license is very permissive (BSD), and the only thing that might hinder its acceptance is the minimum JDK requirement – JDK 6.0.

Screenshot of A03

The second is Titanium and comes from Teppefall Labs. It extends one of the dark skins from Substance and provides a modern-looking, clean and consistent skin for desktop applications. My original intent was to make Substance as extensible as possible, and this is the first time i am aware of a third-party look and feel that extends it. Hopefully, most of the extension hooks are already in place, and if not, they will be.

Screenshot of Titanium

This is the eighth part in the ongoing series of providing support for SwingX components in Substance look and feel.

  • The first part showed the support for JXTaskPaneContainer and JXTaskPane.
  • The second part showed the support for JXStatusBar.
  • The third part showed the support for JXTitledPanel.
  • The fourth part showed the support for JXTipOfTheDay.
  • The fifth part showed the support for JXLoginPanel.
  • The sixth part showed the support for JXMonthView.
  • The seventh part showed the support for JXHeader.

This part will show the support for JXErrorPane. The UI delegate for JXErrorPane respects the settings of the current skin (colors, watermarks, gradients etc), which results in a consistent appearance for this UI component. Here is a screenshot of a JXErrorPane under Business skin:

The same dialog under Business Black Steel skin:

The same dialog under Creme skin:

The same dialog under Sahara skin:

The same dialog under dark Raven skin:

The same dialog under dark Magma skin:

As with JXTaskPane, JXTipOfTheDay and JXMonthView, the UI delegate for the JXErrorPane adds an extra animation. Once a JXErrorPane is shown, its icon glows for three cycles. The movie below shows this effect:



This is the seventh part in the ongoing series of providing support for SwingX components in Substance look and feel.

  • The first part showed the support for JXTaskPaneContainer and JXTaskPane.
  • The second part showed the support for JXStatusBar.
  • The third part showed the support for JXTitledPanel.
  • The fourth part showed the support for JXTipOfTheDay.
  • The fifth part showed the support for JXLoginPanel.
  • The sixth part showed the support for JXMonthView.

This part will show the support for JXHeader. As with other components, the UI delegate for JXHeader respects the header painter of the current skin, which results in a consistent and unique appearance for the “decoration” areas of the UI. Here is a screenshot of a JXHeader under Business skin:

The same frame under Business Black Steel skin:

The same frame under Mist Silver skin:

The same frame under Nebula Brick Wall skin:

The same frame under Office Blue 2007 skin:

The same frame under dark Magma skin:

Note that the icon in the screenshots above is application-specific (not set by the UI delegate). The test application uses the same icon and colorizes it using the theme colors of the current skin.

This is the sixth part in the ongoing series of providing support for SwingX components in Substance look and feel.

  • The first part showed the support for JXTaskPaneContainer and JXTaskPane.
  • The second part showed the support for JXStatusBar.
  • The third part showed the support for JXTitledPanel.
  • The fourth part showed the support for JXTipOfTheDay.
  • The fifth part showed the support for JXLoginPanel.

This part will show the support for JXMonthView. As with other components, the UI delegate for month view provides consistent and unique appearance for the “decoration” areas of the UI. Here is a screenshot of a JXLoginPanel under Business Black Steel skin:

The same panel under Office Blue 2007 skin:

The same panel under dark Raven skin:

The same panel under dark Raven Graphite skin:

The same panel under dark Magma skin:

In addition, like with JXTaskPane and JXTipOfTheDay, the UI delegate for JXMonthView provides rollover animations. The movie below shows the rollover animation effect on the JXMonthView header (under the dark Magma skin). Note how both the background gradient and the foreground color of the header are smoothly animated between different colors:



Note that unlike the previous entries, the screenshots and the movie in this part were taken under JDK 6.0 (on Windows Vista). As such, Substance installs and uses a font policy that uses Segoe font (instead of Tahoma). In addition, Substance automatically configures the desktop-consistent antialiasing of all the strings.