當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。