Module java.desktop
Package java.awt

Class Color

java.lang.Object
java.awt.Color
所有已实现的接口:
Paint, Transparency, Serializable
直接已知的子类:
ColorUIResource, SystemColor

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

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

参见:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final Color
    黑色。
    static final Color
    黑色。
    static final Color
    蓝色。
    static final Color
    蓝色。
    static final Color
    青色。
    static final Color
    青色。
    static final Color
    深灰色。
    static final Color
    深灰色。
    static final Color
    灰色。
    static final Color
    灰色。
    static final Color
    绿色。
    static final Color
    绿色。
    static final Color
    浅灰色。
    static final Color
    浅灰色。
    static final Color
    洋红色。
    static final Color
    洋红色。
    static final Color
    橙色。
    static final Color
    橙色。
    static final Color
    粉红色。
    static final Color
    粉红色。
    static final Color
    red
    红色。
    static final Color
    RED
    红色。
    static final Color
    白色。
    static final Color
    白色。
    static final Color
    黄色。
    static final Color
    黄色。

    Fields declared in interface java.awt.Transparency

    BITMASK, OPAQUE, TRANSLUCENT
  • Constructor Summary

    Constructors
    Constructor
    Description
    Color(float r, float g, float b)
    使用指定范围内的红色、绿色和蓝色值创建一个不透明的sRGB颜色(范围为0.0 - 1.0)。
    Color(float r, float g, float b, float a)
    使用指定范围内的红色、绿色、蓝色和alpha值创建一个sRGB颜色(范围为0.0 - 1.0)。
    Color(int rgb)
    使用指定的组合RGB值(红色组件在位16-23,绿色组件在位8-15,蓝色组件在位0-7)创建一个不透明的sRGB颜色。
    Color(int rgba, boolean hasalpha)
    使用指定的组合RGBA值(alpha组件在位24-31,红色组件在位16-23,绿色组件在位8-15,蓝色组件在位0-7)创建一个sRGB颜色。
    Color(int r, int g, int b)
    使用指定范围内的红色、绿色和蓝色值创建一个不透明的sRGB颜色(范围为0 - 255)。
    Color(int r, int g, int b, int a)
    使用指定范围内的红色、绿色、蓝色和alpha值创建一个sRGB颜色(范围为0 - 255)。
    Color(ColorSpace cspace, float[] components, float alpha)
    在指定的ColorSpace中使用float数组中指定的颜色组件和指定的alpha创建一个颜色。
  • Method Summary

    Modifier and Type
    Method
    Description
    创建一个比当前Color更亮的新Color
    创建并返回一个用于生成实色字段图案的PaintContext
    darker()
    创建一个比当前Color更暗的新Color
    static Color
    decode(String nm)
    String转换为整数并返回指定的不透明Color
    boolean
    equals(Object obj)
    确定另一个对象是否等于此Color
    int
    返回范围在0-255的alpha组件。
    int
    返回默认sRGB空间中范围在0-255的蓝色组件。
    static Color
    在系统属性中查找颜色。
    static Color
    getColor(String nm, int v)
    在系统属性中查找颜色。
    static Color
    getColor(String nm, Color v)
    在系统属性中查找颜色。
    float[]
    getColorComponents(float[] compArray)
    返回仅包含Color的颜色组件的float数组,在ColorColorSpace中。
    float[]
    getColorComponents(ColorSpace cspace, float[] compArray)
    返回仅包含Color的颜色组件的float数组,以cspace参数指定的ColorSpace为准。
    返回此ColorColorSpace
    float[]
    getComponents(float[] compArray)
    返回仅包含Color的颜色和alpha组件的float数组,在ColorColorSpace中。
    float[]
    getComponents(ColorSpace cspace, float[] compArray)
    返回仅包含Color的颜色和alpha组件的float数组,以cspace参数指定的ColorSpace为准。
    int
    返回默认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)
    返回仅包含Color的颜色组件的float数组,在默认sRGB颜色空间中。
    float[]
    getRGBComponents(float[] compArray)
    返回Color的颜色和alpha组件的float数组,如在默认sRGB颜色空间中表示的那样。
    int
    返回此Color的透明度模式。
    int
    计算此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模型的色调、饱和度和亮度三个组件的等效值集。
    返回此Color的字符串表示形式。

    Methods declared in class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • 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
  • Constructor Details

    • Color

      public Color(int r, int g, int b)
      使用指定范围内的红色、绿色和蓝色值创建一个不透明的sRGB颜色(范围为0 - 255)。实际用于渲染的颜色取决于在给定输出设备可用的颜色空间中找到最佳匹配。Alpha默认为255。
      参数:
      r - 红色分量
      g - 绿色分量
      b - 蓝色分量
      抛出:
      IllegalArgumentException - 如果rgb超出范围0到255(包括边界)
      参见:
    • Color

      @ConstructorProperties({"red","green","blue","alpha"}) public Color(int r, int g, int b, int a)
      创建一个sRGB颜色,其红色、绿色、蓝色和alpha值在范围(0 - 255)内。
      参数:
      r - 红色分量
      g - 绿色分量
      b - 蓝色分量
      a - alpha分量
      抛出:
      IllegalArgumentException - 如果rgba超出范围0到255(包括边界)
      参见:
    • Color

      public Color(int rgb)
      创建一个具有指定的合并RGB值的不透明sRGB颜色,该值由位于16-23位的红色分量、位于8-15位的绿色分量和位于0-7位的蓝色分量组成。在渲染中使用的实际颜色取决于在特定输出设备上找到的最佳匹配的颜色空间。Alpha默认为255。
      参数:
      rgb - 合并的RGB分量
      参见:
    • 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 - 如果alpha位有效则为true;否则为false
      参见:
    • 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(包括边界)
      参见:
    • Color

      public Color(float r, float g, float b, float a)
      创建一个具有指定红色、绿色、蓝色和alpha值(范围为0.0 - 1.0)的sRGB颜色。在渲染中使用的实际颜色取决于在特定输出设备上找到的最佳匹配的颜色空间。
      参数:
      r - 红色分量
      g - 绿色分量
      b - 蓝色分量
      a - alpha分量
      抛出:
      IllegalArgumentException - 如果rgba超出范围0.0到1.0(包括边界)
      参见:
    • Color

      public Color(ColorSpace cspace, float[] components, float alpha)
      使用指定的ColorSpace中的颜色组件和指定的alpha创建颜色。组件的数量由ColorSpace的类型确定。例如,RGB需要3个组件,但CMYK需要4个组件。
      参数:
      cspace - 用于解释组件的ColorSpace
      components - 与ColorSpace兼容的任意数量的颜色组件
      alpha - alpha值
      抛出:
      IllegalArgumentException - 如果components数组中的任何值或alpha超出范围0.0到1.0
      参见:
  • Method Details

    • getRed

      public int getRed()
      返回默认sRGB空间中范围为0-255的红色分量。
      返回:
      红色分量。
      参见:
    • getGreen

      public int getGreen()
      返回默认sRGB空间中范围为0-255的绿色分量。
      返回:
      绿色分量。
      参见:
    • getBlue

      public int getBlue()
      返回默认sRGB空间中范围为0-255的蓝色分量。
      返回:
      蓝色分量。
      参见:
    • getAlpha

      public int getAlpha()
      返回范围为0-255的alpha分量。
      返回:
      alpha分量。
      参见:
    • getRGB

      public int getRGB()
      返回默认sRGB ColorModel 中表示颜色的RGB值。(位24-31为alpha,16-23为红色,8-15为绿色,0-7为蓝色)。
      返回:
      默认sRGB ColorModel 中颜色的RGB值。
      自:
      1.0
      参见:
    • brighter

      public Color brighter()
      创建一个比当前Color更亮的新Color

      此方法对该Color的三个RGB分量应用任意比例因子,以创建该Color的更亮版本。保留alpha值。尽管brighterdarker是互为逆操作,但由于舍入误差,连续调用这两种方法的结果可能不一致。

      返回:
      一个新的Color对象,它是该Color的更亮版本,具有相同的alpha值。
      自:
      1.0
      参见:
    • darker

      public Color darker()
      创建一个比当前Color更暗的新Color

      此方法对该Color的三个RGB分量应用任意比例因子,以创建该Color的更暗版本。保留alpha值。尽管brighterdarker是互为逆操作,但由于舍入误差,连续调用这两种方法的结果可能不一致。

      返回:
      一个新的Color对象,它是该Color的更暗版本,具有相同的alpha值。
      自:
      1.0
      参见:
    • hashCode

      public int hashCode()
      计算此Color的哈希码。
      覆盖:
      hashCode 在类 Object
      返回:
      此对象的哈希码值。
      自:
      1.0
      参见:
    • equals

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

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

      覆盖:
      equals 在类 Object
      参数:
      obj - 用于与此Color进行相等性测试的对象
      返回:
      如果对象相同,则为true; 否则为false
      自从:
      1.0
      另请参阅:
    • toString

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

      public static Color decode(String nm) throws NumberFormatException
      String转换为整数,并返回指定的不透明Color。此方法处理用于表示八进制和十六进制数的字符串格式。
      参数:
      nm - 以24位整数表示不透明颜色的String
      返回:
      新的Color对象。
      抛出:
      NumberFormatException - 如果指定的字符串无法解释为十进制、八进制或十六进制整数。
      自从:
      1.1
      另请参阅:
    • getColor

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

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

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

      参数:
      nm - 颜色属性的名称
      返回:
      从系统属性转换而来的Color
      自从:
      1.0
      另请参阅:
    • getColor

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

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

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

      参数:
      nm - 颜色属性的名称
      v - 默认Color
      返回:
      从系统属性转换而来的Color,或指定的Color
      自从:
      1.0
      另请参阅:
    • getColor

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

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

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

      参数:
      nm - 颜色属性的名称
      v - 默认颜色值,作为整数
      返回:
      从系统属性转换而来的Color或从指定整数转换而来的Color
      自从:
      1.0
      另请参阅:
    • HSBtoRGB

      public static int HSBtoRGB(float hue, float saturation, float brightness)
      将颜色的组件按HSB模型指定的方式转换为默认RGB模型的等效值集。

      饱和度亮度组件应为介于零和一之间的浮点值(范围在0.0-1.0之间的数字)。色调组件可以是任意浮点数。从该数字中减去其底部以创建0到1之间的分数。然后将此分数乘以360以产生HSB颜色模型中的色调角度。

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

      参数:
      hue - 颜色的色调组件
      saturation - 颜色的饱和度
      brightness - 颜色的亮度
      返回:
      具有指定色调、饱和度和亮度的颜色的RGB值。
      自从:
      1.0
      另请参阅:
    • 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
      另请参阅:
    • 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)
      返回一个包含Color的颜色和alpha分量的float数组,表示默认sRGB颜色空间中的颜色。如果compArraynull,则为返回值创建一个长度为4的数组。否则,compArray必须具有长度为4或更大,并且将填充该组件并返回。
      参数:
      compArray - 该方法填充颜色和alpha分量并返回的数组
      返回:
      一个float数组中的RGBA分量。
    • getRGBColorComponents

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

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

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

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

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

      public ColorSpace getColorSpace()
      返回此ColorColorSpace
      返回:
      Color对象的ColorSpace
    • createContext

      public PaintContext createContext(ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform xform, RenderingHints hints)
      创建并返回用于生成实色字段图案的PaintContext。查看Paint接口中方法的规范,了解有关空参数处理的信息。
      在接口中指定:
      createContext 在接口 Paint
      参数:
      cm - 表示调用者接收像素数据最方便格式的首选ColorModel,如果没有偏好,则为null
      r - 正在渲染的图形基元的设备空间边界框。
      r2d - 正在渲染的图形基元的用户空间边界框。
      xform - 从用户空间到设备空间的AffineTransform
      hints - 上下文对象可用于选择渲染替代方案的提示集。
      返回:
      用于生成颜色图案的PaintContext
      参见:
    • getTransparency

      public int getTransparency()
      返回此Color的透明度模式。这是实现Paint接口所必需的。
      在接口中指定:
      getTransparency 在接口 Transparency
      返回:
      Color对象的透明度模式。
      参见: