0

我正在开发适合 Nimbus 外观的自定义组件。我遇到了颜色默认值的问题,就像"nimbusBlueGrey"在 Java 1.6 中返回的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)

因此,我希望能够将其读取为0xffa9b0be正确的 ARGB(参见Nimbus Defaults)——但我从中得到的getRGB是无用0x00323232的。

4

1 回答 1

0

当 Nimbus不是当前的外观和感觉时,就会出现问题。似乎DerivedColor查找当前外观然后无法解码父颜色。

所以解决方案是在没有设置 Nimbus 的情况下使用默认颜色的副本。

于 2012-02-23T22:46:30.993 回答