Substance look and feel - inverted themes

Inverted theme is based on inverting another (not necessarily simple) theme. One way to see how your application will look under an inverted theme is to take its screenshot, paste it into any image-editing software and apply Invert colors operation : all light areas become dark and vice versa (the runtime will not look exactly an invert of the original theme, use negated themes for exact negative). Note that a good-looking theme will not necessarily look good when inverted.

Here are examples of inverted themes: Inverted Aqua, Inverted Barby Pink, Inverted Steel Blue and Inverted Sunset:

Inverted Aqua Inverted Barby Pink Inverted Steel Blue Inverted Sunset

In order to globally enable inverted simple themes in your application you can use the SubstanceLookAndFeel.ENABLE_INVERTED_THEMES client property and put it on UIManager with Boolean.TRUE value. In addition, you can run your application with -Dsubstancelaf.enableInvertedThemes VM flag. Once inverted simple themes are enabled, the call to SubstanceLookAndFeel.getAllThemes() will return information on inverted bright and cold themes as well.

In order to create an inverted theme at runtime, use the following API in SubstanceTheme:

  /**
   * Creates an inverted version of <code>this</code> theme. This method is
   * part of officially supported API.
   
   @return Inverted version of <code>this</code> theme.
   */
  public SubstanceTheme invert()

This is the only officially supported way to create an inverted theme. Note that even though the constructor for org.jvnet.substance.theme.SubstanceInvertedTheme is public, it will not create correct inverted themes for non-simple (derived and complex) themes. Following are examples of inverted non-simple themes:

Mixed Brown & Sun Glare and its inversion:

Toned Aqua and its inversion:

Complex Field of Wheat and its inversion: