定義済みの色を使用する

広告

今までは色の割合をRGB値を使って指定していましたが、Colorクラスでは予め色々な色が定義されています。この定義済みの色を使って色を指定することが可能です。

定義済みの色の一覧は次の通りです。

説明別名
Color.BLACK黒を表します。Color.black
Color.BLUE青を表します。Color.blue
Color.CYANシアンを表します。Color.cyan
Color.DARK_GRAYダークグレイを表します。Color.darkGray
Color.GRAYグレイを表します。Color.gray
Color.GREEN緑を表します。Color.green
Color.LIGHT_GRAYライトグレイを表します。Color.lightGray
Color.MAGENTAマゼンタを表します。Color.magenta
Color.ORANGEオレンジを表します。Color.orange
Color.PINKピンクを表します。Color.pink
Color.RED赤を表します。Color.red
Color.WHITE白を表します。Color.white
Color.YELLOW黄を表します。Color.yellow

同じ色に対して大文字と小文字の2通りが用意されていますが、以前は小文字だけだったのですがJDK1.4から大文字でも定義が行われました。他の定義済みの値と統一するための処置だと思いますので今後は大文字の方を使用した方がいいと思います。

1つ1つの値は例えば次のようにColorクラスのオブジェクトとして定義されています。

黄を表します。デフォルトの sRGB 領域です。

実際の使い方は次のようになります。

JLabel label = new JLabel("ラベル");
label.setBackground(Color.RED);

サンプルプログラム

では簡単なサンプルを作成して試してみます。今回は定義済みの色の数だけJLabelクラスのオブジェクトを作成しそれぞれの色を背景色に設定してみます。

JColorTest3.java

import javax.swing.*;
import java.awt.Color;

public class JColorTest3 extends JFrame{

  public static void main(String[] args){
    JColorTest3 frame = new JColorTest3();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("タイトル");
    frame.setVisible(true);
  }

  JColorTest3(){
    JLabel label1 = new JLabel("COLOR BLACK");
    label1.setOpaque(true);
    label1.setBackground(Color.BLACK);

    JLabel label2 = new JLabel("COLOR BLUE");
    label2.setOpaque(true);
    label2.setBackground(Color.BLUE);

    JLabel label3 = new JLabel("COLOR CYAN");
    label3.setOpaque(true);
    label3.setBackground(Color.CYAN);

    JLabel label4 = new JLabel("COLOR DARK_GRAY");
    label4.setOpaque(true);
    label4.setBackground(Color.DARK_GRAY);

    JLabel label5 = new JLabel("COLOR GRAY");
    label5.setOpaque(true);
    label5.setBackground(Color.GRAY);

    JLabel label6 = new JLabel("COLOR GREEN");
    label6.setOpaque(true);
    label6.setBackground(Color.GREEN);

    JLabel label7 = new JLabel("COLOR LIGHT_GRAY");
    label7.setOpaque(true);
    label7.setBackground(Color.LIGHT_GRAY);

    JLabel label8 = new JLabel("COLOR MAGENTA");
    label8.setOpaque(true);
    label8.setBackground(Color.MAGENTA);

    JLabel label9 = new JLabel("COLOR ORANGE");
    label9.setOpaque(true);
    label9.setBackground(Color.ORANGE);

    JLabel label10 = new JLabel("COLOR PINK");
    label10.setOpaque(true);
    label10.setBackground(Color.PINK);

    JLabel label11 = new JLabel("COLOR RED");
    label11.setOpaque(true);
    label11.setBackground(Color.RED);

    JLabel label12 = new JLabel("COLOR WHITE");
    label12.setOpaque(true);
    label12.setBackground(Color.WHITE);

    JLabel label13 = new JLabel("COLOR YELLOW");
    label13.setOpaque(true);
    label13.setBackground(Color.YELLOW);

    JPanel p = new JPanel();
    p.add(label1);
    p.add(label2);
    p.add(label3);
    p.add(label4);
    p.add(label5);
    p.add(label6);
    p.add(label7);
    p.add(label8);
    p.add(label9);
    p.add(label10);
    p.add(label11);
    p.add(label12);
    p.add(label13);

    getContentPane().add(p);
  }
}

上記をコンパイルした後で実行すると次のように表示されます。

定義済みの色で色を指定する

( Written by Tatsuo Ikura )