我正在开发适合Nimbus外观和感觉的定制组件。我遇到了颜色默认值的问题,与Java 1.6中的"nimbusBlueGrey"
一样,返回com.sun.java.swing.plaf.nimbus.DerivedColor
的实例。
由于这是一个私有类,无论如何都会在Java 7中进行更改,我需要将其视为java.awt.Color
的实例。但是当我尝试混合颜色时,例如调整色调,饱和度和亮度,这些邪恶的对象返回错误的RGB颜色。 toString
输出表明存在此问题:
DerivedColor(color=50,50,50 parent=nimbusBase offsets=0.03245944,-0.525188,0.196078,0)
所以我希望能够将其视为ARGB 0xffa9b0be
这是正确的(参见Nimbus Defaults) - 但我从getRGB
获得的是无用{{1} }}
答案 0 :(得分:0)
当Nimbus 不是当前的外观时会出现问题。似乎DerivedColor
查找当前的外观,然后无法解码父颜色。
因此,解决方案是在未设置Nimbus的情况下使用默认颜色的副本。