Question

In my Java application I have to custom-paint a control and for that I need to use the same font colors as JButton. (Enabled and disabled) I don't want to hard-code them, because the user can change the Substance skin at runtime.

I'm aware of the ColorSchemes but I'm not sure how to proceed once I have the color scheme of the current skin. Also the Substance documentation says something about creating your own color scheme, but I just can't figure out the way to retrieve a certain color.

Was it helpful?

Solution

OK, finally I figured it out myself:

The important step is to figure out the correct color scheme. Because in Substance every root pane can have its own skin, it's best to use the getCurrentSkinhelper.

SubstanceColorScheme s = SubstanceLookAndFeel
        .getCurrentSkin(myComponent)
        .getEnabledColorScheme(
                SubstanceLookAndFeel.getDecorationType(myComponent)
         );

Other possibilities are getDisabledColorScheme, getActiveColorScheme and getBackgroundColorScheme.

Then you can use s.getForegroundColor or various helper methods from SubstanceColorUtilities.

OTHER TIPS

Why don't you ask Kirill (creator of Substance) on Substance Forum at https://substance.dev.java.net/servlets/ProjectForumView

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top