- 所有已实现的接口:
-
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
Modifier 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
ConstructorDescriptionColor
(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
。int
getAlpha()
返回范围在0-255的alpha组件。int
getBlue()
返回默认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
为准。int
getGreen()
返回默认sRGB空间中范围在0-255的绿色组件。static Color
getHSBColor
(float h, float s, float b) 基于HSB颜色模型的指定值创建Color
对象。int
getRed()
返回默认sRGB空间中范围在0-255的红色组件。int
getRGB()
返回表示默认sRGBColorModel
中颜色的RGB值。float[]
getRGBColorComponents
(float[] compArray) 返回仅包含Color
的颜色组件的float
数组,在默认sRGB颜色空间中。float[]
getRGBComponents
(float[] compArray) 返回Color
的颜色和alpha组件的float
数组,如在默认sRGB颜色空间中表示的那样。int
返回此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模型的色调、饱和度和亮度三个组件的等效值集。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
对象的透明度模式。 - 参见:
-