Color
Colorクラスは Objectクラスの直接のサブ・クラスです。
java.awtパッケージに含まれます。
Colorは色のデータを表すクラスです。
RGBカラーのデータを内部に記憶する他、
それらのデータを操作するメソッドを提供します。
グラフィックスの操作には欠かせません。
Colorクラスには publicな変数として利用頻度が高い原色のデータが
13色分用意されています。
(これらもまた Colorクラスのオブジェクトです。)
全て staticな変数なのでコンストラクタによって
オブジェクトを生成しなくても利用することができます。
これら以外には publicな変数はありません。
Colorクラスの変数
- public final static Color white
- public final static Color lightGray
- public final static Color gray
- public final static Color darkGray
- public final static Color black
- public final static Color red
- public final static Color pink
- public final static Color orange
- public final static Color yellow
- public final static Color green
- public final static Color magenta
- public final static Color cyan
- public final static Color blue
一部の色の名前は、あまりなじみがないかもしれません。
cyan(シアン)は水色です。magenta(マゼンタ)は原色のピンクです。
pinkはむしろ淡い肌色に近い色を与えます。
Colorクラスのメソッド
Colorクラスには、
引数の区別もすると全部で約 20個のコンストラクタとメソッドが定義されています。
メソッドの目的ごとに以下の項目のようにグループ分けして解説します。
Colorのオブジェクト内部のデータはいつでも参照できますが、
Colorのオブジェクト内部のデータをダイナミックに変更することは
できません。色を変更するためには新しい Colorのオブジェクト
を生成する必要があります。
- コンストラクタ
- 色の情報を取り出すためのメソッド
- RGB情報と HSB情報との変換のメソッド
- Colorのオブジェクト自体の情報を与えるメソッド
コンストラクタ
- public Color(int r, int g, int b)
- public Color(float r, float g, float b)
- public Color(int rgb)
Colorクラスには3種類のコンストラクタが用意されています。
いずれも RGBのデータを引数に与えます。
データの形式として RGBの3個のデータを
0 から 255 までの int型のデータで、
0.0 から 1.0 までの float型のデータで、
8ビットずつ計 24ビットの int型のデータ1つで与えることができます。
(上位ビットから red,green,blueの順に並ぶ)
色の情報を取り出すためのメソッド
- public int getRed()
- public int getGreen()
- public int getBlue()
- public int getRGB()
これらは RGBのデータそのものを取り出す最も基本的なメソッドです。
getRGB()の返値は 8ビットごとの計 24ビットの int型のデータです。
- public static Color getColor(String num)
- public static Color getColor(String num, Color v)
- public static Color getColor(String num, int v)
getColor()メソッドはプロパティに登録されたカラー情報を
基にして Color のオブジェクトを生成します。
第1引数はプロパティの番号を表す Stringクラスのオブジェクトです。
該当するプロパティが登録されていない場合には、第2引数のデータを
基にして Color のオブジェクトが返されます。
- public Color brighter()
- public Color darker()
これらのメソッドは Colorのオブジェクトの色を元にして、
ハイライトおよび陰に相当する色を返します。
RGB情報と HSB情報との変換のメソッド
- public static float[] RGBtoHSB(int r, int g, int b, float hsbvals[])
- public static int HSBtoRGB(float hue, float saturation, float brightness)
- public static Color getHSBColor(float h, float s, float b)
HSB情報とは、色相(hue)、彩度(saturation)、明度(brightness)の三要素の
ことです。RGBtoHSB()メソッドは与えられた RGB情報を
HSB情報に変換して返します。返値は float型の配列です。
引数の最後の配列の内容は特に指定する必要はありません。nullを与えてください。
HSBtoRGB()および getHSBColor()メソッドは、
与えられた HSB情報を RGB情報に変換します。
返値は RGBの情報を 24ビットにまとめた int型の数値か、
Colorのオブジェクトになります。
以上の3つのメソッドは staticなので、Colorのオブジェクトを生成しなくても
利用することができます。
Colorのオブジェクト自体の情報を与えるメソッド
- public int hashCode()
- public boolean equals(Object obj)
- public String toString()
hashCode()メソッドは 24ビットで表現した RGBデータの int型の値を返します。
(働きは getRGB()メソッドと同じです。)
equals()メソッドは、与えられた他の色と一致するかをチェックします。
toString()メソッドは、RGBの情報を Stringクラスのオブジェクトとして返します。