Module  java.desktop
软件包  java.awt

Class Color

  • All Implemented Interfaces:
    PaintTransparencySerializable
    已知直接子类:
    ColorUIResourceSystemColor


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

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

    Version:
    1997年2月10日
    另请参见:
    ColorSpaceAlphaCompositeSerialized Form
    • 构造方法摘要

      构造方法  
      Constructor 描述
      Color​(float r, float g, float b)
      使用范围(0.0 - 1.0)中指定的红色,绿色和蓝色值创建不透明的sRGB颜色。
      Color​(float r, float g, float b, float a)
      用范围(0.0 - 1.0)中指定的红,绿,蓝和阿尔法值创建sRGB颜色。
      Color​(int rgb)
      创建一个不透明的sRGB颜色,其中指定的组合RGB值包括位16-23中的红色分量,位8-15中的绿色分量和位0-7中的蓝色分量。
      Color​(int rgba, boolean hasalpha)
      使用指定的组合RGBA值创建sRGB颜色,RGBA值由位24-31中的alpha分量,位16-23中的红色分量,位8-15中的绿色分量和位0-7中的蓝色分量组成。
      Color​(int r, int g, int b)
      用范围(0 - 255)范围内的指定的红色,绿色和蓝色值创建不透明的sRGB颜色。
      Color​(int r, int g, int b, int a)
      在范围(0 - 255)范围内创建指定的红,绿,蓝和阿尔法值的sRGB颜色。
      Color​(ColorSpace cspace, float[] components, float alpha)
      创建指定一个颜色 ColorSpace与中指定的颜色分量 float阵列和所述指定的alpha。
    • 方法摘要

      所有方法  静态方法  接口方法  具体的方法 
      Modifier and Type 方法 描述
      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转换为整数,并返回指定的不透明度 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 ,在 ColorSpaceColor
      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)
        用范围(0 - 255)范围内的指定的红色,绿色和蓝色值创建不透明的sRGB颜色。 渲染中使用的实际颜色取决于给定给定输出设备可用的颜色空间的最佳匹配。 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)
        在范围(0 - 255)范围内创建指定的红,绿,蓝和阿尔法值的sRGB颜色。
        参数
        r - 红色组件
        g - 绿色组件
        b - 蓝色组件
        a - alpha组件
        异常
        IllegalArgumentException -如果 rgba 0到255以外的范围内的,包括
        另请参见:
        getRed()getGreen()getBlue()getAlpha()getRGB()
      • Color

        public Color​(int rgb)
        创建一个不透明的sRGB颜色,其中指定的组合RGB值包括位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颜色,RGBA值由位24-31中的alpha分量,位16-23中的红色分量,位8-15中的绿色分量和位0-7中的蓝色分量组成。 如果hasalpha参数为false ,则默认为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)
        用范围(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)
        创建指定一个颜色ColorSpace与中指定的颜色分量float阵列和所述指定的alpha。 组件的数量由ColorSpace的类型ColorSpace 例如,RGB需要3个组件,但CMYK需要4个组件。
        参数
        cspace - 用于解释组件的 ColorSpace
        components - 与 ColorSpace兼容的任意数量的颜色分量
        alpha - 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

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

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

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

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

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

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

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

        参数
        nm - 颜色属性的名称
        结果
        从系统属性转换 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返回由第二个参数指定的Color

        参数
        nm - 颜色属性的名称
        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 - 颜色属性的名称
        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.0-1.0)。 hue组件可以是任意浮点数。 从该数字中减去该数字的底数以创建0到1之间的分数。然后将该分数乘以360,以在HSB颜色模型中产生色调角。

        HSBtoRGB返回的整数对与方法getRGB使用的格式相同的整数值的位0-23的颜色的值进行编码。 该整数可以作为一个参数提供给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.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 ,在ColorSpaceColor 如果compArraynull ,则为返回值创建一个长度等于相关ColorSpace加上一个组件数的数组。 否则, compArray必须至少具有此长度,并填充组件并返回。
        参数
        compArray - 一个数组,该方法填充了该 Color的颜色和alpha分量,其 ColorSpace并返回
        结果
        一个 float阵列中的颜色和alpha组件。
      • getColorComponents

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

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

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

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