- Home ›
- Applet(アプレット)入門 ›
- Graphicsクラス ›
- HERE
色の指定
アプレット上で色々な描画を行う場合に、色を指定する方法を見ていきます。GraphicsクラスのsetColorメソッドを使います。
setColor public abstract void setColor(Color c)
このグラフィックスコンテキストの現在の色を、指定された色に設定します。 このグラフィックスコンテキストを使うこれ以降のグラフィック関連操作は、 ここで指定された色を使用します。 パラメータ: 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クラスのオブジェクトを作成します。オブジェクトの作成の時に使用するコンストラクタは下記を使います。
Color public Color(int r, int g, int b)
範囲 (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に値を指定した場合にどのような色になるのかは『値の単位と記述方法』などを参考にして下さい。
サンプルプログラム
では実際に試してみます。
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); } }
実際にブラウザで見てみた結果は下記の通りです。
実際に下記で確認頂けます。
( Written by Tatsuo Ikura )