模块  java.desktop
软件包  java.awt

Class Color

  • 实现的所有接口
    PaintTransparencySerializable
    已知直接子类:
    ColorUIResourceSystemColor

    public class Color
    extends Object
    implements Paint, Serializable
    Color类用于封装默认sRGB颜色空间中的颜色或由ColorSpace标识的任意颜色空间中的颜色。 每种颜色都具有1.0的隐式alpha值或构造函数中提供的显式alpha值。 alpha值定义颜色的透明度,可以用0.0 - 1.0或0 - 255范围内的浮点值表示.1.0或255的alpha值表示颜色完全不透明,alpha值为0或0.0意味着颜色是完全透明的。 当构造具有显式alpha或获得Color的颜色/ alpha分量的Color ,颜色分量永远不会被alpha分量预乘。

    Java 2D(tm)API的默认颜色空间是sRGB,一种建议的标准RGB颜色空间。 有关sRGB的更多信息,请参阅http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html

    另请参见:
    ColorSpaceAlphaCompositeSerialized Form
    • 构造方法摘要

      构造方法  
      构造器 描述
      Color​(float r, float g, float b)
      使用指定的红色,绿色和蓝色值(0.0 - 1.0)创建不透明的sRGB颜色。
      Color​(float r, float g, float b, float a)
      使用指定的红色,绿色,蓝色和Alpha值(范围为0.0 - 1.0)创建sRGB颜色。
      Color​(int rgb)
      使用指定的组合RGB值创建不透明的sRGB颜色,该值由位16-23中的红色分量,位8-15中的绿色分量和位0-7中的蓝色分量组成。
      Color​(int rgba, boolean hasalpha)
      使用指定的组合RGBA值创建sRGB颜色,该值由位24-31中的alpha分量,位16-23中的红色分量,位8-15中的绿色分量和位0-7中的蓝色分量组成。
      Color​(int r, int g, int b)
      使用指定的红色,绿色和蓝色值创建不透明的sRGB颜色,范围为(0 - 255)。
      Color​(int r, int g, int b, int a)
      使用指定的红色,绿色,蓝色和alpha值(范围为0 - 255)创建sRGB颜色。
      Color​(ColorSpace cspace, float[] components, float alpha)
      使用 float数组中指定的颜色分量和指定的alpha创建指定的 ColorSpace中的颜色。
    • 方法摘要

      所有方法  静态方法  实例方法 具体的方法 
      变量和类型 方法 描述
      Color brighter()
      创建一个新的 Color ,它是此的一个亮的 Color
      PaintContext createContext​(ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform xform, RenderingHints hints)
      创建并返回用于生成纯色域图案的PaintContext
      Color darker()
      创建一个新的 Color ,它是该 Color的较暗版本。
      static Color decode​(String nm)
      String转换为整数并返回指定的opaque Color
      boolean equals​(Object obj)
      确定另一个对象是否等于此 Color
      int getAlpha()
      返回0-255范围内的alpha分量。
      int getBlue()
      返回默认sRGB空间中0-255范围内的蓝色分量。
      static Color getColor​(String nm)
      在系统属性中查找颜色。
      static Color getColor​(String nm, int v)
      在系统属性中查找颜色。
      static Color getColor​(String nm, Color v)
      在系统属性中查找颜色。
      float[] getColorComponents​(float[] compArray)
      返回一个 float阵列只包含的颜色分量 Color ,在 ColorSpace的的 Color
      float[] getColorComponents​(ColorSpace cspace, float[] compArray)
      返回 float数组,该数组仅包含 cspace参数指定的 Color中的 ColorSpace的颜色分量。
      ColorSpace getColorSpace()
      返回 ColorSpaceColor
      float[] getComponents​(float[] compArray)
      返回一个 float阵列包含的颜色和alpha分量 Color ,在 ColorSpace的的 Color
      float[] getComponents​(ColorSpace cspace, float[] compArray)
      返回一个 float阵列包含的颜色和alpha分量 Color ,在 ColorSpace由指定 cspace参数。
      int getGreen()
      返回默认sRGB空间中0-255范围内的绿色分量。
      static Color getHSBColor​(float h, float s, float b)
      根据HSB颜色模型的指定值创建 Color对象。
      int getRed()
      返回默认sRGB空间中0-255范围内的红色分量。
      int getRGB()
      返回表示默认sRGB ColorModel颜色的RGB值。
      float[] getRGBColorComponents​(float[] compArray)
      返回一个 float阵列只包含的颜色分量 Color ,在默认的sRGB色彩空间。
      float[] getRGBComponents​(float[] compArray)
      返回包含 float的颜色和alpha分量的 Color ,如默认sRGB颜色空间中所示。
      int getTransparency()
      返回此 Color的透明度模式。
      int hashCode()
      计算此 Color的哈希码。
      static int HSBtoRGB​(float hue, float saturation, float brightness)
      将HSB模型指定的颜色分量转换为默认RGB模型的等效值集。
      static float[] RGBtoHSB​(int r, int g, int b, float[] hsbvals)
      将默认RGB模型指定的颜色分量转换为色调,饱和度和亮度的等效值集,这些值是HSB模型的三个组成部分。
      String toString()
      返回此 Color的字符串表示 Color
    • 字段详细信息

      • white

        public static final Color white
        颜色为白色。 在默认的sRGB空间中。
      • WHITE

        public static final Color WHITE
        颜色为白色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
      • lightGray

        public static final Color lightGray
        颜色浅灰色。 在默认的sRGB空间中。
      • LIGHT_GRAY

        public static final Color LIGHT_GRAY
        颜色浅灰色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
      • gray

        public static final Color gray
        颜色为灰色。 在默认的sRGB空间中。
      • GRAY

        public static final Color GRAY
        颜色为灰色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
      • darkGray

        public static final Color darkGray
        颜色深灰色。 在默认的sRGB空间中。
      • DARK_GRAY

        public static final Color DARK_GRAY
        颜色深灰色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
      • black

        public static final Color black
        颜色为黑色。 在默认的sRGB空间中。
      • BLACK

        public static final Color BLACK
        颜色为黑色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
      • red

        public static final Color red
        颜色为红色。 在默认的sRGB空间中。
      • RED

        public static final Color RED
        颜色为红色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
      • pink

        public static final Color pink
        粉红色。 在默认的sRGB空间中。
      • PINK

        public static final Color PINK
        粉红色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
      • orange

        public static final Color orange
        橙色。 在默认的sRGB空间中。
      • ORANGE

        public static final Color ORANGE
        橙色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
      • yellow

        public static final Color yellow
        颜色为黄色。 在默认的sRGB空间中。
      • YELLOW

        public static final Color YELLOW
        颜色为黄色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
      • green

        public static final Color green
        颜色为绿色。 在默认的sRGB空间中。
      • GREEN

        public static final Color GREEN
        颜色为绿色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
      • magenta

        public static final Color magenta
        颜色洋红色。 在默认的sRGB空间中。
      • MAGENTA

        public static final Color MAGENTA
        颜色洋红色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
      • cyan

        public static final Color cyan
        青色。 在默认的sRGB空间中。
      • CYAN

        public static final Color CYAN
        青色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
      • blue

        public static final Color blue
        颜色为蓝色。 在默认的sRGB空间中。
      • BLUE

        public static final Color BLUE
        颜色为蓝色。 在默认的sRGB空间中。
        从以下版本开始:
        1.4
    • 构造方法详细信息

      • Color

        public Color​(int r,
                     int g,
                     int b)
        使用指定的红色,绿色和蓝色值创建不透明的sRGB颜色,范围为(0 - 255)。 渲染中使用的实际颜色取决于在给定输出设备可用的颜色空间的情况下找到最佳匹配。 Alpha默认为255。
        参数
        r - 红色组件
        g - 绿色组件
        b - 蓝色组件
        异常
        IllegalArgumentException -如果 rgb 0到255以外的范围内的,包括
        另请参见:
        getRed()getGreen()getBlue()getRGB()
      • Color

        @ConstructorProperties({"red","green","blue","alpha"})
        public Color​(int r,
                     int g,
                     int b,
                     int a)
        使用指定的红色,绿色,蓝色和alpha值(范围为0 - 255)创建sRGB颜色。
        参数
        r - 红色组件
        g - 绿色组件
        b - 蓝色组件
        a - alpha分量
        异常
        IllegalArgumentException -如果 rgba 0到255以外的范围内的,包括
        另请参见:
        getRed()getGreen()getBlue()getAlpha()getRGB()
      • Color

        public Color​(int rgb)
        使用指定的组合RGB值创建不透明的sRGB颜色,该值由位16-23中的红色分量,位8-15中的绿色分量和位0-7中的蓝色分量组成。 渲染中使用的实际颜色取决于在给定特定输出设备可用的颜色空间的情况下找到最佳匹配。 Alpha默认为255。
        参数
        rgb - 组合的RGB组件
        另请参见:
        ColorModel.getRGBdefault()getRed()getGreen()getBlue()getRGB()
      • Color

        public Color​(int rgba,
                     boolean hasalpha)
        使用指定的组合RGBA值创建sRGB颜色,该值由位24-31中的alpha分量,位16-23中的红色分量,位8-15中的绿色分量和位0-7中的蓝色分量组成。 如果hasalpha参数为false ,则alpha默认为255。
        参数
        rgba - 组合的RGBA组件
        hasalpha - true如果alpha位有效; 否则为false
        另请参见:
        ColorModel.getRGBdefault()getRed()getGreen()getBlue()getAlpha()getRGB()
      • Color

        public Color​(float r,
                     float g,
                     float b)
        使用指定的红色,绿色和蓝色值(0.0 - 1.0)创建不透明的sRGB颜色。 Alpha默认为1.0。 渲染中使用的实际颜色取决于在给定特定输出设备可用的颜色空间的情况下找到最佳匹配。
        参数
        r - 红色组件
        g - 绿色组件
        b - 蓝色组件
        异常
        IllegalArgumentException -如果 rgb是0.0〜1.0以外的范围内的,包括
        另请参见:
        getRed()getGreen()getBlue()getRGB()
      • Color

        public Color​(float r,
                     float g,
                     float b,
                     float a)
        使用指定的红色,绿色,蓝色和Alpha值(范围为0.0 - 1.0)创建sRGB颜色。 渲染中使用的实际颜色取决于在给定特定输出设备可用的颜色空间的情况下找到最佳匹配。
        参数
        r - 红色组件
        g - 绿色组件
        b - 蓝色组件
        a - alpha分量
        异常
        IllegalArgumentException -如果 rg ba是0.0〜1.0的范围以外,含
        另请参见:
        getRed()getGreen()getBlue()getAlpha()getRGB()
      • Color

        public Color​(ColorSpace cspace,
                     float[] components,
                     float alpha)
        使用float数组中指定的颜色分量和指定的alpha创建指定的ColorSpace中的颜色。 组件数量由ColorSpace的类型ColorSpace 例如,RGB需要3个组件,但CMYK需要4个组件。
        参数
        cspace - 用于解释组件的 ColorSpace
        components - 与 ColorSpace兼容的任意数量的颜色组件
        alpha - 阿尔法值
        异常
        IllegalArgumentException - 如果 components数组或 alpha中的任何值超出范围0.0到1.0
        另请参见:
        getComponents(float[])getColorComponents(float[])
    • 方法详细信息

      • getRed

        public int getRed()
        返回默认sRGB空间中0-255范围内的红色分量。
        结果
        红色成分。
        另请参见:
        getRGB()
      • getGreen

        public int getGreen()
        返回默认sRGB空间中0-255范围内的绿色分量。
        结果
        绿色成分。
        另请参见:
        getRGB()
      • getBlue

        public int getBlue()
        返回默认sRGB空间中0-255范围内的蓝色分量。
        结果
        蓝色组件。
        另请参见:
        getRGB()
      • getAlpha

        public int getAlpha()
        返回0-255范围内的alpha分量。
        结果
        alpha分量。
        另请参见:
        getRGB()
      • brighter

        public Color brighter()
        创建一个新的Color ,它是此的一个亮的Color

        此方法适用于以任意倍率每本的三个RGB分量Color创建此的一个亮的Color 保留alpha值。 尽管brighterdarker是反向操作,但由于舍入错误,这两种方法的一系列调用的结果可能不一致。

        结果
        Color对象,它是一个更光明的版本的 Color具有相同 alpha值。
        从以下版本开始:
        1.0
        另请参见:
        darker()
      • darker

        public Color darker()
        创建一个新的Color ,它是该Color的较暗版本。

        此方法适用于任意的比例因子到每个这种的三个RGB分量Color创建此的较暗的版本Color 保留alpha值。 尽管brighterdarker是反向操作,但由于舍入错误,这两种方法的一系列调用的结果可能不一致。

        结果
        一个新的 Color对象,它是此 Color的较暗版本,具有相同的 alpha值。
        从以下版本开始:
        1.0
        另请参见:
        brighter()
      • equals

        public boolean equals​(Object obj)
        确定另一个对象是否等于此Color

        当且仅当参数不是null并且是具有与Color对象相同的红色,绿色,蓝色和alpha值的Color对象时,结果为true

        重写:
        equals在课程 Object
        参数
        obj - 要与此 Color进行相等性测试的对象
        结果
        true如果对象相同; 否则为false
        从以下版本开始:
        1.0
        另请参见:
        Object.hashCode()HashMap
      • toString

        public String toString()
        返回此Color的字符串表示Color 此方法仅用于调试目的。 返回字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但不能为null
        重写:
        toString ,类 Object
        结果
        Color的字符串表示 Color
      • decode

        public static Color decode​(String nm)
                            throws NumberFormatException
        String转换为整数并返回指定的不透明Color 此方法处理用于表示八进制和十六进制数字的字符串格式。
        参数
        nm - String ,表示不透明颜色为24位整数
        结果
        新的 Color对象。
        异常
        NumberFormatException - 如果指定的字符串不能解释为十进制,八进制或十六进制整数。
        从以下版本开始:
        1.1
        另请参见:
        Integer.decode(java.lang.String)
      • getColor

        public static Color getColor​(String nm)
        在系统属性中查找颜色。

        该参数被视为要获取的系统属性的名称。 然后将此属性的字符串值解释为整数,然后将其转换为Color对象。

        如果未找到指定的属性或无法将其解析为整数,则返回null

        参数
        nm - color属性的名称
        结果
        Color从系统属性转换而来。
        从以下版本开始:
        1.0
        另请参见:
        System.getProperty(java.lang.String)Integer.getInteger(java.lang.String)Color(int)
      • getColor

        public static Color getColor​(String nm,
                                     Color v)
        在系统属性中查找颜色。

        第一个参数被视为要获取的系统属性的名称。 然后将此属性的字符串值解释为整数,然后将其转换为Color对象。

        如果未找到指定的属性或无法将其解析为整数,则返回由第二个参数指定的Color

        参数
        nm - color属性的名称
        v - 默认 Color
        结果
        所述 Color从系统属性转换,或指定的 Color
        从以下版本开始:
        1.0
        另请参见:
        System.getProperty(java.lang.String)Integer.getInteger(java.lang.String)Color(int)
      • getColor

        public static Color getColor​(String nm,
                                     int v)
        在系统属性中查找颜色。

        第一个参数被视为要获取的系统属性的名称。 然后将此属性的字符串值解释为整数,然后将其转换为Color对象。

        如果未找到指定的属性或无法将其解析为整数,则使用整数值v ,并将其转换为Color对象。

        参数
        nm - color属性的名称
        v - 默认颜色值,为整数
        结果
        Color从系统属性转换或从指定的整数转换而来的 Color
        从以下版本开始:
        1.0
        另请参见:
        System.getProperty(java.lang.String)Integer.getInteger(java.lang.String)Color(int)
      • HSBtoRGB

        public static int HSBtoRGB​(float hue,
                                   float saturation,
                                   float brightness)
        将HSB模型指定的颜色分量转换为默认RGB模型的等效值集。

        saturationbrightness组件应为0到1之间的浮点值(数字范围为0.0-1.0)。 hue组件可以是任何浮点数。 从中减去该数字的下限以创建0和1之间的分数。然后将该分数乘以360以在HSB颜色模型中产生色调角。

        HSBtoRGB返回的整数对整数值的位0-23中的颜色值进行编码,该整数值与方法getRGB使用的格式相同。 此整数可作为参数提供给采用单个整数参数的Color构造函数。

        参数
        hue - 颜色的色调组件
        saturation - 颜色的饱和度
        brightness - 颜色的亮度
        结果
        具有指示的色调,饱和度和亮度的颜色的RGB值。
        从以下版本开始:
        1.0
        另请参见:
        getRGB()Color(int)ColorModel.getRGBdefault()
      • RGBtoHSB

        public static float[] RGBtoHSB​(int r,
                                       int g,
                                       int b,
                                       float[] hsbvals)
        将默认RGB模型指定的颜色分量转换为色调,饱和度和亮度的等效值集,这些值是HSB模型的三个组成部分。

        如果hsbvals参数为null ,则分配新数组以返回结果。 否则,该方法返回数组hsbvals ,并将值放入该数组中。

        参数
        r - 颜色的红色成分
        g - 颜色的绿色成分
        b - 颜色的蓝色成分
        hsbvals - 用于返回三个HSB值的数组,或 null
        结果
        包含色调,饱和度和亮度(按此顺序)的三个元素的数组,颜色带有指示的红色,绿色和蓝色分量。
        从以下版本开始:
        1.0
        另请参见:
        getRGB()Color(int)ColorModel.getRGBdefault()
      • getHSBColor

        public static Color getHSBColor​(float h,
                                        float s,
                                        float b)
        根据HSB颜色模型的指定值创建Color对象。

        sb组件应为0到1之间的浮点值(数字范围为0.0-1.0)。 h组件可以是任何浮点数。 从中减去该数字的下限以创建0和1之间的分数。然后将该分数乘以360以在HSB颜色模型中产生色调角。

        参数
        h - 色调组件
        s - 颜色的饱和度
        b - 颜色的亮度
        结果
        具有指定色调,饱和度和亮度的 Color对象。
        从以下版本开始:
        1.0
      • getRGBComponents

        public float[] getRGBComponents​(float[] compArray)
        返回包含float的颜色和alpha分量的Color ,如默认sRGB颜色空间中所示。 如果compArraynull ,则为返回值创建长度为4的数组。 否则, compArray必须具有4或更大的长度,并使用组件填充并返回。
        参数
        compArray - 此方法使用颜色和alpha分量填充并返回的数组
        结果
        float数组中的RGBA组件。
      • getRGBColorComponents

        public float[] getRGBColorComponents​(float[] compArray)
        返回一个float阵列只包含的颜色分量Color ,在默认的sRGB色彩空间。 如果compArraynull ,则为返回值创建长度为3的数组。 否则, compArray必须具有3或更大的长度,并使用组件填充并返回。
        参数
        compArray - 此方法使用颜色组件填充并返回的数组
        结果
        float数组中的RGB组件。
      • getComponents

        public float[] getComponents​(float[] compArray)
        返回一个float阵列包含的颜色和alpha分量Color ,在ColorSpace的的Color 如果compArraynull ,则为返回值创建一个长度等于关联的ColorSpace的组件数加1的数组。 否则, compArray必须至少具有此长度,并使用组件填充并返回。
        参数
        compArray - 此方法在其 ColorSpace填充此 Color的颜色和alpha分量并返回的 ColorSpace
        结果
        float数组中的颜色和alpha分量。
      • getColorComponents

        public float[] getColorComponents​(float[] compArray)
        返回一个float阵列只包含的颜色分量Color ,在ColorSpace的的Color 如果compArraynullColorSpace返回值创建长度等于关联的ColorSpace的组件数的数组。 否则, compArray必须至少具有此长度,并使用组件填充并返回。
        参数
        compArray - 此方法在其 ColorSpace中使用此 Color的颜色组件填充的数组,并返回
        结果
        float数组中的颜色组件。
      • getComponents

        public float[] getComponents​(ColorSpace cspace,
                                     float[] compArray)
        返回一个float阵列包含的颜色和alpha分量Color ,在ColorSpace由指定cspace参数。 如果compArraynull ,则为返回值创建一个长度等于cspace的组件cspace加1的数组。 否则, compArray必须至少具有此长度,并使用组件填充并返回。
        参数
        cspace - 指定的 ColorSpace
        compArray - 此方法在指定的 ColorSpace填充此 Color的颜色和alpha分量并返回的 ColorSpace
        结果
        float数组中的颜色和alpha分量。
      • getColorComponents

        public float[] getColorComponents​(ColorSpace cspace,
                                          float[] compArray)
        返回一个float数组,该数组仅包含cspace参数指定的Color中的ColorSpace的颜色分量。 如果compArraynullcspace返回值创建长度等于cspace的组件数的数组。 否则, compArray必须至少具有此长度,并使用组件填充并返回。
        参数
        cspace - 指定的 ColorSpace
        compArray - 此方法在指定的 ColorSpace中使用此 Color的颜色组件填充的数组
        结果
        float数组中的颜色组件。
      • getColorSpace

        public ColorSpace getColorSpace()
        返回 ColorSpaceColor
        结果
        这个 Color对象的 ColorSpace