Color 类是 Java Abstract Window Toolkit(AWT)包的一部分。 Color 类使用给定的 RGBA 值创建颜色,其中RGBA代表 RED、GREEN、BLUE、ALPHA 或使用HSB值,其中 HSB 代表 HUE、SATURATION、BRI 分量。各个分量 RGBA 的值范围为 0 到 255 或 0.0 到 0.1。 Alpha 值决定颜色的不透明度,其中 0 或 0.0 代表完全透明,255 或 1.0 代表不透明。
Constructors of Color Class
- 颜色(颜色空间 c,float[] co,float a):使用 float 数组中指定的颜色分量和指定的 alpha 在指定的 ColorSpace 中创建颜色。
- 颜色(浮点 r、浮点 g、浮点 b):使用指定的 RGB 分量创建不透明颜色(值在 0.0 - 0.1 范围内)
- 颜色(浮点 r、浮点 g、浮点 b、浮点 a):使用指定的 RGBA 分量创建颜色(值在 0.0 - 0.1 范围内)
- 颜色(int RGB):使用指定的组合 RGB 值创建不透明 RGB 颜色,该值由位 16-23 中的红色分量、位 8-15 中的绿色分量和位 0-7 中的蓝色分量组成。
- 颜色(int rgba,布尔值b):使用指定的组合 RGBA 值创建 sRGB 颜色,该值由位 24-31 中的 alpha 分量、位 16-23 中的红色分量、位 8 中的绿色分量组成
- 15,蓝色分量位于位 0 - 7 中。 - 颜色(int r,int g,int b):使用指定的 RGB 分量创建不透明颜色(值在 0 - 255 范围内)
- 颜色(int r,int g,int b,int a):使用指定的 RGBA 分量创建颜色(值在 0 - 255 范围内)
Commonly Used Methods In Color Class
方法 | 解释 |
---|---|
brighter() | 创建一种新颜色,它是该颜色的更亮版本。 |
createContext(ColorModel cm, 矩形 r, 矩形2D r2d, AffineTransform x, RenderingHints h) | 创建并返回用于生成纯色字段图案的PaintContext。 |
darker()/td> |
创建一种新颜色,该颜色是该颜色的较暗版本。 |
decode(String nm) | 将字符串转换为整数并返回指定的不透明颜色。 |
equals(Object obj) | 确定另一个 Color 对象是否等于此 Color。 |
getAlpha() | 返回 0-255 范围内的 alpha 分量。 |
getBlue() | 返回 0-255 范围内的蓝色分量。 |
getColor(String nm) | 在系统属性中查找颜色。 |
getColor(String nm, Color v) | 在系统属性中查找颜色。 |
getColor(String nm, int v) | 在系统属性中查找颜色。 |
getColorComponents(ColorSpace cspace, float[] compArray) | 返回一个浮点数组,仅包含 cspace 参数指定的 ColorSpace 中 Color 的颜色分量。 |
getColorComponents(float[] compArray) | 返回一个浮点数组,仅包含 Color 的颜色分量,位于 Color 的 ColorSpace 中。 |
getColorSpace() | 返回此颜色的ColorSpace。 |
getGreen() | 返回默认 sRGB 空间中 0-255 范围内的绿色分量。 |
getRed() | 返回默认 sRGB 空间中 0-255 范围内的红色分量。 |
getRGB() | 返回表示默认 sRGB ColorModel 中颜色的 RGB 值。 |
getHSBColor(float h, float s, float b) | 根据 HSB 颜色模型的指定值创建 Color 对象。 |
getTransparency() | 返回此颜色的透明度模式。 |
hashCode() | 计算该 Color 的哈希码。 |
HSBtoRGB(float h, float s, float b) | 将 HSB 值转换为 RGB 值 |
RGBtoHSB(int r, int g, int b, float[] hsbvals) | 将 RGB 值转换为 HSB 值 |
以下示例程序旨在说明 Java AWT 中的 Color 类:
- 使用类常量中指定的颜色设置面板背景颜色的程序
Java
// Java program to set the background color of panel
// using the color specified in the constants
// of the class.
import java.awt.*;
import javax.swing.*;
class color extends JFrame {
// constructor
color()
{
super("color");
// create a new Color
Color c = Color.yellow;
// create a panel
JPanel p = new JPanel();
// set the background of the frame
// to the specified Color
p.setBackground(c);
setSize(200, 200);
add(p);
show();
}
// Main Method
public static void main(String args[])
{
color c = new color();
}
}
输出:
- 程序通过指定 RGB 值来创建新颜色并将其设置为面板背景
Java
// Java program to create a new Color by stating
// the RGB value and set it as background of panel
import java.awt.*;
import javax.swing.*;
class color extends JFrame {
// constructor
color()
{
super("color");
// create a new Color
// RGB value of Yellow is 225, 255, 0
Color c = new Color(255, 255, 0);
// create a panel
JPanel p = new JPanel();
// set the background of the
// frame to the specified Color
p.setBackground(c);
setSize(200, 200);
add(p);
show();
}
// Main Method
public static void main(String args[])
{
color c = new color();
}
}
输出:
- 程序通过指定 RGB 值和 alpha 值来创建新颜色,并将其设置为面板背景
Java
// Java program to create a new Color by stating the
// RGB value and alpha value, set it as background
// of panel .
import java.awt.*;
import javax.swing.*;
class color extends JFrame {
// constructor
color()
{
super("color");
// create a new Color
// RGB value of red is 225, 0, 0
// and set its alpha value as
// 100 out of 255
Color c = new Color(255, 0, 0, 100);
// create a panel
JPanel p = new JPanel();
// set the background of the
// frame to the specified Color
p.setBackground(c);
setSize(200, 200);
add(p);
show();
}
// Main Method
public static void main(String args[])
{
color c = new color();
}
}
输出:
- 程序使用 Color(int rgb) 方法创建一个新颜色,并将其设置为面板背景
Java
// Java program to create a new Color by using
// Color(int rgb) method, set it as background
// of panel .
import java.awt.*;
import javax.swing.*;
class color extends JFrame {
// constructor
color()
{
super("color");
// create a new Color
// RGB value of blue is 255
// and set its alpha value as
// 200 out of 255
Color c = new Color(255);
// create a panel
JPanel p = new JPanel();
// set the background of the
// frame to the specified Color
p.setBackground(c);
setSize(200, 200);
add(p);
show();
}
// Main Method
public static void main(String args[])
{
color c = new color();
}
}
输出:
- 程序从用户获取 RGBA 值并将其设置为面板背景
Java
// Java Program to take RGBA value from
// user and set it as background of panel
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class color extends JFrame implements ActionListener {
// textfield to enter RGBA value
JTextField R, G, B, A;
// panel
JPanel p;
// constructor
color()
{
super("color");
// create textfield
R = new JTextField(3);
G = new JTextField(3);
B = new JTextField(3);
A = new JTextField(3);
// create labels
JLabel l = new JLabel("Red= ");
JLabel l1 = new JLabel("Green= ");
JLabel l2 = new JLabel("Blue= ");
JLabel l3 = new JLabel("Alpha= ");
// create a panel
p = new JPanel();
// create button
JButton b = new JButton("ok");
JButton b1 = new JButton("brighter");
JButton b2 = new JButton("Darker");
// add ActionListener
b.addActionListener(this);
b2.addActionListener(this);
b1.addActionListener(this);
// add components to panel
p.add(l);
p.add(R);
p.add(l1);
p.add(G);
p.add(l2);
p.add(B);
p.add(l3);
p.add(A);
p.add(b);
p.add(b1);
p.add(b2);
setSize(200, 200);
add(p);
show();
}
// if button is pressed
public void actionPerformed(ActionEvent evt)
{
String s = evt.getActionCommand();
if (s.equals("ok")) {
int r, g, b, a;
// get rgba value
r = Integer.parseInt(R.getText());
g = Integer.parseInt(G.getText());
b = Integer.parseInt(B.getText());
a = Integer.parseInt(A.getText());
// create a new Color
Color c = new Color(r, g, b, a);
// set the color as background of panel
p.setBackground(c);
}
else if (s.equals("brighter")) {
// getBackgroundColor
Color c = p.getBackground();
// make the color brighter
c = c.brighter();
// set the color as background of panel
p.setBackground(c);
}
else {
// getBackgroundColor
Color c = p.getBackground();
// make the color brighter
c = c.darker();
// set the color as background of panel
p.setBackground(c);
}
}
// Main Method
public static void main(String args[])
{
color c = new color();
}
}
输出:
- 程序从用户处获取 HSB 值并将其设置为面板背景
Java
// Java Program to take HSB value from
// user and set it as background of panel
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class color extends JFrame implements ActionListener {
// textfield to enter RGBA value
JTextField H, S, B;
// panel
JPanel p;
// constructor
color()
{
super("color");
// create textfield
H = new JTextField(3);
S = new JTextField(3);
B = new JTextField(3);
// create labels
JLabel l = new JLabel("Hue= ");
JLabel l1 = new JLabel("Saturation= ");
JLabel l2 = new JLabel("Brightness= ");
// create a panel
p = new JPanel();
// create button
JButton b = new JButton("ok");
JButton b1 = new JButton("brighter");
JButton b2 = new JButton("Darker");
// add ActionListener
b.addActionListener(this);
b2.addActionListener(this);
b1.addActionListener(this);
// add components to panel
p.add(l);
p.add(H);
p.add(l1);
p.add(S);
p.add(l2);
p.add(B);
p.add(b);
p.add(b1);
p.add(b2);
setSize(200, 200);
add(p);
show();
}
// if button is pressed
public void actionPerformed(ActionEvent evt)
{
String st = evt.getActionCommand();
if (st.equals("ok")) {
float h, s, b;
// get rgba value
h = Float.parseFloat(H.getText());
s = Float.parseFloat(S.getText());
b = Float.parseFloat(B.getText());
// create a new Color
Color c = Color.getHSBColor(h, s, b);
// set the color as background of panel
p.setBackground(c);
}
else if (st.equals("brighter")) {
// getBackgroundColor
Color c = p.getBackground();
// make the color brighter
c = c.brighter();
// set the color as background of panel
p.setBackground(c);
}
else {
// getBackgroundColor
Color c = p.getBackground();
// make the color brighter
c = c.darker();
// set the color as background of panel
p.setBackground(c);
}
}
// Main Method
public static void main(String args[])
{
color c = new color();
}
}
输出:
参考: https://docs.oracle.com/javase/7/docs/api/java/awt/Color.html
相关用法
- Java AWT Choice用法及代码示例
- Java AWT CardLayout用法及代码示例
- Java AWT Canvas用法及代码示例
- Java AWT Dimension用法及代码示例
- Java AWT MenuShortcut用法及代码示例
- Java AWT SpringLayout用法及代码示例
- Java AWT Desktop用法及代码示例
- Java AWT BoxLayout用法及代码示例
- Java AWT GridBagLayout用法及代码示例
- Java AWT GridLayout用法及代码示例
- Java AWT BorderLayout用法及代码示例
- Java ArrayList add()用法及代码示例
- Java ArrayList addAll()用法及代码示例
- Java ArrayList clear()用法及代码示例
- Java ArrayList clone()用法及代码示例
- Java ArrayList contains()用法及代码示例
- Java ArrayList get()用法及代码示例
- Java ArrayList indexOf()用法及代码示例
- Java ArrayList removeAll()用法及代码示例
- Java ArrayList remove()用法及代码示例
- Java ArrayList size()用法及代码示例
- Java ArrayList isEmpty()用法及代码示例
- Java ArrayList subList()用法及代码示例
- Java ArrayList set()用法及代码示例
注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 Java AWT | Color Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。