- 所有已实现的接口:
-
Paint,Transparency,Serializable
- 直接已知的子类:
-
ColorUIResource,SystemColor
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
FieldsModifier and TypeFieldDescriptionstatic 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红色。static final Color红色。static final Color白色。static final Color白色。static final Color黄色。static final Color黄色。Fields declared in interface java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT -
Constructor Summary
ConstructorsConstructorDescriptionColor(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 TypeMethodDescriptionbrighter()创建一个比当前Color更亮的新Color。createContext(ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform xform, RenderingHints hints) 创建并返回一个用于生成实色字段图案的PaintContext。darker()创建一个比当前Color更暗的新Color。static Color将String转换为整数并返回指定的不透明Color。boolean确定另一个对象是否等于此Color。intgetAlpha()返回范围在0-255的alpha组件。intgetBlue()返回默认sRGB空间中范围在0-255的蓝色组件。static Color在系统属性中查找颜色。static Color在系统属性中查找颜色。static Color在系统属性中查找颜色。float[]getColorComponents(float[] compArray) 返回仅包含Color的颜色组件的float数组,在Color的ColorSpace中。float[]getColorComponents(ColorSpace cspace, float[] compArray) 返回仅包含Color的颜色组件的float数组,以cspace参数指定的ColorSpace为准。返回此Color的ColorSpace。float[]getComponents(float[] compArray) 返回仅包含Color的颜色和alpha组件的float数组,在Color的ColorSpace中。float[]getComponents(ColorSpace cspace, float[] compArray) 返回仅包含Color的颜色和alpha组件的float数组,以cspace参数指定的ColorSpace为准。intgetGreen()返回默认sRGB空间中范围在0-255的绿色组件。static ColorgetHSBColor(float h, float s, float b) 基于HSB颜色模型的指定值创建Color对象。intgetRed()返回默认sRGB空间中范围在0-255的红色组件。intgetRGB()返回表示默认sRGBColorModel中颜色的RGB值。float[]getRGBColorComponents(float[] compArray) 返回仅包含Color的颜色组件的float数组,在默认sRGB颜色空间中。float[]getRGBComponents(float[] compArray) 返回Color的颜色和alpha组件的float数组,如在默认sRGB颜色空间中表示的那样。int返回此Color的透明度模式。inthashCode()计算此Color的哈希码。static intHSBtoRGB(float hue, float saturation, float brightness) 将颜色的组件按照HSB模型指定的方式转换为默认RGB模型的等效值集。static float[]RGBtoHSB(int r, int g, int b, float[] hsbvals) 将颜色的组件按照默认RGB模型指定的方式转换为HSB模型的色调、饱和度和亮度三个组件的等效值集。toString()返回此Color的字符串表示形式。
-
Field Details
-
white
白色。在默认sRGB空间中。 -
WHITE
白色。在默认sRGB空间中。- 自从:
- 1.4
-
lightGray
浅灰色。在默认sRGB空间中。 -
LIGHT_GRAY
浅灰色。在默认sRGB空间中。- 自从:
- 1.4
-
gray
灰色。在默认sRGB空间中。 -
GRAY
灰色。在默认sRGB空间中。- 自从:
- 1.4
-
darkGray
深灰色。在默认sRGB空间中。 -
DARK_GRAY
深灰色。在默认sRGB空间中。- 自从:
- 1.4
-
black
黑色。在默认sRGB空间中。 -
BLACK
黑色。在默认sRGB空间中。- 自从:
- 1.4
-
red
红色。在默认sRGB空间中。 -
RED
红色。在默认sRGB空间中。- 自从:
- 1.4
-
pink
粉红色。在默认sRGB空间中。 -
PINK
粉红色。在默认sRGB空间中。- 自从:
- 1.4
-
orange
橙色。在默认sRGB空间中。 -
ORANGE
橙色。在默认sRGB空间中。- 自从:
- 1.4
-
yellow
黄色。在默认sRGB空间中。 -
YELLOW
黄色。在默认sRGB空间中。- 自从:
- 1.4
-
green
绿色。在默认sRGB空间中。 -
GREEN
绿色。在默认sRGB空间中。- 自从:
- 1.4
-
magenta
洋红色。在默认sRGB空间中。 -
MAGENTA
洋红色。在默认sRGB空间中。- 自从:
- 1.4
-
cyan
青色。在默认sRGB空间中。 -
CYAN
青色。在默认sRGB空间中。- 自从:
- 1.4
-
blue
蓝色。在默认sRGB空间中。 -
BLUE
蓝色。在默认sRGB空间中。- 自从:
- 1.4
-
-
Constructor Details
-
Color
public Color(int r, int g, int b) 使用指定范围内的红色、绿色和蓝色值创建一个不透明的sRGB颜色(范围为0 - 255)。实际用于渲染的颜色取决于在给定输出设备可用的颜色空间中找到最佳匹配。Alpha默认为255。- 参数:
-
r- 红色分量 -
g- 绿色分量 -
b- 蓝色分量 - 抛出:
-
IllegalArgumentException- 如果r、g或b超出范围0到255(包括边界) - 参见:
-
Color
创建一个sRGB颜色,其红色、绿色、蓝色和alpha值在范围(0 - 255)内。- 参数:
-
r- 红色分量 -
g- 绿色分量 -
b- 蓝色分量 -
a- alpha分量 - 抛出:
-
IllegalArgumentException- 如果r、g、b或a超出范围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- 如果r、g或b超出范围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- 如果r、g、b或a超出范围0.0到1.0(包括边界) - 参见:
-
Color
使用指定的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()返回默认sRGBColorModel中表示颜色的RGB值。(位24-31为alpha,16-23为红色,8-15为绿色,0-7为蓝色)。- 返回:
-
默认sRGB
ColorModel中颜色的RGB值。 - 自:
- 1.0
- 参见:
-
brighter
创建一个比当前Color更亮的新Color。此方法对该
Color的三个RGB分量应用任意比例因子,以创建该Color的更亮版本。保留alpha值。尽管brighter和darker是互为逆操作,但由于舍入误差,连续调用这两种方法的结果可能不一致。- 返回:
-
一个新的
Color对象,它是该Color的更亮版本,具有相同的alpha值。 - 自:
- 1.0
- 参见:
-
darker
创建一个比当前Color更暗的新Color。此方法对该
Color的三个RGB分量应用任意比例因子,以创建该Color的更暗版本。保留alpha值。尽管brighter和darker是互为逆操作,但由于舍入误差,连续调用这两种方法的结果可能不一致。- 返回:
-
一个新的
Color对象,它是该Color的更暗版本,具有相同的alpha值。 - 自:
- 1.0
- 参见:
-
hashCode
public int hashCode()计算此Color的哈希码。 -
equals
确定另一个对象是否等于此Color。结果为
true当且仅当参数不为null且为具有与此对象相同的红色、绿色、蓝色和alpha值的Color对象时。 -
toString
返回此Color的字符串表示形式。此方法仅用于调试目的。返回的字符串的内容和格式可能因实现而异。返回的字符串可能为空,但不能为null。 -
decode
将String转换为整数,并返回指定的不透明Color。此方法处理用于表示八进制和十六进制数的字符串格式。- 参数:
-
nm- 以24位整数表示不透明颜色的String - 返回:
-
新的
Color对象。 - 抛出:
-
NumberFormatException- 如果指定的字符串无法解释为十进制、八进制或十六进制整数。 - 自从:
- 1.1
- 另请参阅:
-
getColor
在系统属性中查找颜色。参数被视为要获取的系统属性的名称。然后,该属性的字符串值被解释为整数,然后转换为
Color对象。如果未找到指定的属性或无法解析为整数,则返回
null。- 参数:
-
nm- 颜色属性的名称 - 返回:
-
从系统属性转换而来的
Color。 - 自从:
- 1.0
- 另请参阅:
-
getColor
在系统属性中查找颜色。第一个参数被视为要获取的系统属性的名称。然后,该属性的字符串值被解释为整数,然后转换为
Color对象。如果未找到指定的属性或无法解析为整数,则返回第二个参数指定的
Color。- 参数:
-
nm- 颜色属性的名称 -
v- 默认Color - 返回:
-
从系统属性转换而来的
Color,或指定的Color。 - 自从:
- 1.0
- 另请参阅:
-
getColor
在系统属性中查找颜色。第一个参数被视为要获取的系统属性的名称。然后,该属性的字符串值被解释为整数,然后转换为
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
根据HSB颜色模型的指定值创建一个Color对象。s和b组件应为介于零和一之间的浮点值(范围在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颜色空间中的颜色。如果compArray为null,则为返回值创建一个长度为4的数组。否则,compArray必须具有长度为4或更大,并且将填充该组件并返回。- 参数:
-
compArray- 该方法填充颜色和alpha分量并返回的数组 - 返回:
-
一个
float数组中的RGBA分量。
-
getRGBColorComponents
public float[] getRGBColorComponents(float[] compArray) 返回一个仅包含Color的颜色分量的float数组,在默认sRGB颜色空间中。如果compArray为null,则为返回值创建一个长度为3的数组。否则,compArray必须具有长度为3或更大,并且将填充该组件并返回。- 参数:
-
compArray- 该方法填充颜色分量并返回的数组 - 返回:
-
一个
float数组中的RGB分量。
-
getComponents
public float[] getComponents(float[] compArray) 返回一个包含Color的颜色和alpha分量的float数组,在Color的ColorSpace中。如果compArray为null,则为返回值创建一个长度等于关联ColorSpace中组件数加一的数组。否则,compArray必须至少具有此长度,并且将填充该组件并返回。- 参数:
-
compArray- 一个数组,该方法用此Color的颜色和alpha分量填充,并返回其ColorSpace中的颜色和alpha分量 - 返回:
-
一个
float数组,包含颜色和alpha分量。
-
getColorComponents
public float[] getColorComponents(float[] compArray) 返回一个float数组,仅包含Color的颜色分量,在Color的ColorSpace中。如果compArray为null,则为返回值创建一个长度等于关联ColorSpace中分量数量的数组。否则,compArray必须至少具有此长度,并填充其中的分量并返回。- 参数:
-
compArray- 一个数组,该方法用此Color的颜色分量填充,并返回其ColorSpace中的颜色分量 - 返回:
-
一个
float数组,包含颜色分量。
-
getComponents
返回一个float数组,包含Color的颜色和alpha分量,在由cspace参数指定的ColorSpace中。如果compArray为null,则为返回值创建一个长度等于cspace中分量数量加一的数组。否则,compArray必须至少具有此长度,并填充其中的分量并返回。- 参数:
-
cspace- 指定的ColorSpace -
compArray- 一个数组,该方法用此Color的颜色和alpha分量填充,并返回其指定的ColorSpace中的颜色和alpha分量 - 返回:
-
一个
float数组,包含颜色和alpha分量。
-
getColorComponents
返回一个float数组,仅包含Color在由cspace参数指定的ColorSpace中的颜色分量。如果compArray为null,则为返回值创建一个长度等于cspace中分量数量的数组。否则,compArray必须至少具有此长度,并填充其中的分量并返回。- 参数:
-
cspace- 指定的ColorSpace -
compArray- 一个数组,该方法用此Color的颜色分量填充,并返回其指定的ColorSpace中的颜色分量 - 返回:
-
一个
float数组,包含颜色分量。
-
getColorSpace
返回此Color的ColorSpace。- 返回:
-
此
Color对象的ColorSpace。
-
createContext
public PaintContext createContext(ColorModel cm, Rectangle r, Rectangle2D r2d, AffineTransform xform, RenderingHints hints) - 在接口中指定:
-
createContext在接口Paint中 - 参数:
-
cm- 表示调用者接收像素数据最方便格式的首选ColorModel,如果没有偏好,则为null。 -
r- 正在渲染的图形基元的设备空间边界框。 -
r2d- 正在渲染的图形基元的用户空间边界框。 -
xform- 从用户空间到设备空间的AffineTransform。 -
hints- 上下文对象可用于选择渲染替代方案的提示集。 - 返回:
-
用于生成颜色图案的
PaintContext。 - 参见:
-
getTransparency
public int getTransparency()返回此Color的透明度模式。这是实现Paint接口所必需的。- 在接口中指定:
-
getTransparency在接口Transparency中 - 返回:
-
此
Color对象的透明度模式。 - 参见:
-