色の指定

広告

アプレット上で色々な描画を行う場合に、色を指定する方法を見ていきます。GraphicsクラスのsetColorメソッドを使います。

このグラフィックスコンテキストの現在の色を、指定された色に設定します。
このグラフィックスコンテキストを使うこれ以降のグラフィック関連操作は、
ここで指定された色を使用します。

パラメータ:
  c - 新しい描画色

何かを描画する時に合わせて色を指定するのではありません。ペンを持っているようなもので、まずペンの色を選んでから、それからテキストを描画したり図形を描画したりします。その為、何かを描画する前に色を指定しておく必要がありますし、いったん色を指定したら、次に変更されるまで同じ色を使って描画が行われます。

色はColorクラスを使って指定します。そこでColorクラスについても見ておきます。

Colorクラス

Colorクラスの定義は下記のようになっています。

  • java.lang.Object
  • java.awt.Color
  • public class Color extends Object implements Paint, Serializable

Colorクラスを使って色を指定する方法は色々あるのですが、定義済みの色を使う方法と赤緑青の3原色をそれぞれ指定して色を作成する方法を見ておきます。

まず定義済みの色です。定義済みの色というのは良く使われる色を定数として用意してくれているものです。次のようなものがあります。

Color.black       黒を表します
Color.blue        青を表します
Color.cyan        シアンを表します
Color.darkGray    ダークグレイを表します
Color.gray        グレイを表します
Color.green       緑を表します
Color.lightGray   ライトグレイを表します
Color.magenta     マゼンタを表します
Color.orange      オレンジを表します
Color.pink        ピンクを表します
Color.red         赤を表します
Color.white       白を表します
Color.yellow      黄を表します

使い方ですが、例えば赤色に設定したい場合には下記のように記述します。

public void paint(Graphics g){
  g.setColor(Color.red);

  g.drawString("Hello", 10, 50);
}

setColorメソッドの引数に「Color.色」のような形で指定するだけです。

次に自分で色の割合を指定して色を作成する場合です。この場合はColorクラスのオブジェクトを作成します。オブジェクトの作成の時に使用するコンストラクタは下記を使います。

範囲 (0 ~ 255) の指定された赤、緑、青の値を使って、不透明な sRGB カラー
を生成します。実際の表示に使用される色は、出力デバイスで使用可能な色の中
でもっとも近いものとなります。アルファはデフォルトで 255 に設定されます。

パラメータ:
  r - 赤色成分
  g - 緑色成分
  b - 青色成分 
例外: 
  IllegalArgumentException - r、g、または b が 0 から 255 の範囲を超えて
    いる場合

赤緑青の色合いをそれぞれ0から255の数値を使って指定します。例えば下記のように使います。

public void paint(Graphics g){
  Color color = new Color(127, 0, 63);
  g.setColor(color);

  g.drawString("Hello", 10, 50);
}

又はまとめて下記のように記述も出来ます。

public void paint(Graphics g){
  g.setColor(new Color(127, 0, 63));

  g.drawString("Hello", 10, 50);
}

※RGBに値を指定した場合にどのような色になるのかは『値の単位と記述方法』などを参考にして下さい。

サンプルプログラム

では実際に試してみます。

GraphicsTest2.java

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;

/*
<applet code="GraphicsTest2.class" width="150" height="150">
</applet>
*/

public class GraphicsTest2 extends Applet{
  public void paint(Graphics g){
    g.setColor(Color.red);
    g.drawString("Red", 10, 30);

    g.setColor(new Color(34, 139, 34));
    g.drawString("ForestGreen", 10, 80);
  }
}

実際にブラウザで見てみた結果は下記の通りです。

色の指定

実際に下記で確認頂けます。

GraphicsTest2.html

( Written by Tatsuo Ikura )