Substance 5.2 Quebec - new features


New Dust skin

The new Dust skin is based on the artwork done by Rico Sta Cruz and Kido Mariano for Ubuntu. To use it in your application, you have the following three options:

  • -Dswing.defaultlaf=org.jvnet.substance.skin.SubstanceDustLookAndFeel
  • UIManager.setLookAndFeel(new SubstanceDustLookAndFeel())
  • UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceDustLookAndFeel");

The screenshots below show a frame under the Dust skin:




New Dust Coffee skin

The new Dust Coffee skin is based on the Dust and Creme Coffee skins. To use it in your application, you have the following three options:

  • -Dswing.defaultlaf=org.jvnet.substance.skin.SubstanceDustCoffeeLookAndFeel
  • UIManager.setLookAndFeel(new SubstanceDustCoffeeLookAndFeel())
  • UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceDustCoffeeLookAndFeel");

The screenshots below show a frame under the Dust Coffee skin:




New Twilight skin

The new Twilight skin is inspired by the color schemes of the Bespin web code editor spearheaded by Ben(@bgalbs) and Dion(@dalmaer). To use it in your application, you have the following three options:

  • -Dswing.defaultlaf=org.jvnet.substance.skin.SubstanceTwilightLookAndFeel
  • UIManager.setLookAndFeel(new SubstanceTwilightLookAndFeel())
  • UIManager.setLookAndFeel("org.jvnet.substance.skin.SubstanceTwilightLookAndFeel");

The screenshots below show a frame under the Twilight skin:




More control over border painting

Two new classes are available in the org.jvnet.substance.painter.border package:

  • DelegateBorderPainter allows wrapping an existing border painter, using a transformed color scheme and color masking on top, mid and bottom points of the border painter gradient.
  • CompositeBorderPainter allows creating border painters that paint outer and inner contours of the relevant borders.

Some of the core Substance skins are now using these two classes for modern translucent inner border paintings. Here is sample code from the Raven Graphite skin:

    this.borderPainter = new CompositeBorderPainter("Raven Graphite",
        new ClassicBorderPainter()new DelegateBorderPainter(
            "Raven Graphite Inner"new ClassicBorderPainter(),
            0xFFFFFFFF0x60FFFFFF0x00FFFFFF,
            new ColorSchemeTransform() {
              @Override
              public SubstanceColorScheme transform(
                  SubstanceColorScheme scheme) {
                return scheme.tint(0.4f);
              }
            }));

And this is how it looks like at runtime (see lighter inner border painting on buttons, tabs, comboboxes and checkmarks that fades out from top to bottom):


Visual refresh of Raven Graphite skins

The visuals of Raven Graphite and Raven Graphite Glass skins have been reworked, focusing on:

  • Light highlight color schemes for lists, tables, trees and menus
  • Lighter and partially translucent inner border painting on the buttons, tabs, checkmarks and more
  • Removing the inner border painting from scroll bars

The first screenshot below shows Raven Graphite skin in release 5.1, while the second screenshot shows the same application under Raven Graphite skin in release 5.2:

The first screenshot below shows Raven Graphite skin in release 5.1, while the second screenshot shows the same application under Raven Graphite skin in release 5.2:

The first screenshot below shows Raven Graphite Glass skin in release 5.1, while the second screenshot shows the same application under Raven Graphite Glass skin in release 5.2:

The first screenshot below shows Raven Graphite Glass skin in release 5.1, while the second screenshot shows the same application under Raven Graphite Glass skin in release 5.2:


Improved decoration area support

Better support for renderer-based components, such as lists, tables and trees when these are placed in custom Substance decoration areas.

The screenshots below show test applications with four different decoration areas, each having one enabled and one disabled list / table / tree. The first screenshot shows lists in different decoration areas:

The second screenshot shows tables in different decoration areas:

The last screenshot shows trees in different decoration areas:


Inner borders under very large fonts

Under very large fonts, inner borders did not align correctly with outer borders, resulting in visible visual gaps. This has been addressed.

The first screenshot shows a large checkmark icon under release 5.2 (on left) and release 5.1 (on right):

The second screenshot shows a combobox under release 5.2 (on top) and release 5.1 (on bottom):