在我的Java应用程序中,我必须自定义绘制控件,为此我需要使用与JButton
相同的字体颜色。 (启用和禁用)我不想对它们进行硬编码,因为用户可以在运行时更改物质皮肤。如何使用物质LaF获取按钮的文本颜色?
我知道ColorSchemes
但我不知道如何进行一旦我有当前皮肤的配色方案。 Substance文档还提到了一些关于创建自己的配色方案的内容,但我无法弄清楚如何获取某种颜色。
在我的Java应用程序中,我必须自定义绘制控件,为此我需要使用与JButton
相同的字体颜色。 (启用和禁用)我不想对它们进行硬编码,因为用户可以在运行时更改物质皮肤。如何使用物质LaF获取按钮的文本颜色?
我知道ColorSchemes
但我不知道如何进行一旦我有当前皮肤的配色方案。 Substance文档还提到了一些关于创建自己的配色方案的内容,但我无法弄清楚如何获取某种颜色。
OK问基里尔(物质的创造者),我终于理解了它自己:
重要的一步是要弄清楚正确颜色方案。因为在Substance中,每个根窗格都可以有自己的外观,所以最好使用getCurrentSkin
帮助程序。
SubstanceColorScheme s = SubstanceLookAndFeel
.getCurrentSkin(myComponent)
.getEnabledColorScheme(
SubstanceLookAndFeel.getDecorationType(myComponent)
);
其他可能性getDisabledColorScheme
,getActiveColorScheme
和getBackgroundColorScheme
。
然后您可以使用s.getForegroundColor
或SubstanceColorUtilities
的各种帮助方法。