当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java AWT Color用法及代码示例


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

  1. 颜色(颜色空间 c,float[] co,float a):使用 float 数组中指定的颜色分量和指定的 alpha 在指定的 ColorSpace 中创建颜色。
  2. 颜色(浮点 r、浮点 g、浮点 b):使用指定的 RGB 分量创建不透明颜色(值在 0.0 - 0.1 范围内)
  3. 颜色(浮点 r、浮点 g、浮点 b、浮点 a):使用指定的 RGBA 分量创建颜色(值在 0.0 - 0.1 范围内)
  4. 颜色(int RGB):使用指定的组合 RGB 值创建不透明 RGB 颜色,该值由位 16-23 中的红色分量、位 8-15 中的绿色分量和位 0-7 中的蓝色分量组成。
  5. 颜色(int rgba,布尔值b):使用指定的组合 RGBA 值创建 sRGB 颜色,该值由位 24-31 中的 alpha 分量、位 16-23 中的红色分量、位 8 中的绿色分量组成
    - 15,蓝色分量位于位 0 - 7 中。
  6. 颜色(int r,int g,int b):使用指定的 RGB 分量创建不透明颜色(值在 0 - 255 范围内)
  7. 颜色(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



相关用法


注:本文由纯净天空筛选整理自andrew1234大神的英文原创作品 Java AWT | Color Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。