JDK1.2 から色のグラディエーションを付けるためのクラスが提供されています。
java.awt.geom.GradientPaint です。
ソースの基本部分は次のようになります。
/** 描画メソッド */
public void paint( Graphics g ) {
Point2D.Float point1, point2;
Color color1, color2;
:
:
Ellipse2D.Float elli = new Ellipse2D.Float(
125.0f, 10.0f, 250.0f, 480.0f );
GradientPaint paint = new GradientPaint(
point1, color1, point2, color2, true );
((Graphics2D)g).setPaint( paint );
((Graphics2D)g).fill( elli );
}
GradientPaintは Paintを実装したクラスです。
利用するには次のような手順になります。
新しいクラスについて簡単に解説しておきましょう。
サンプルのソース( GradientPaintTest.java )
このサンプルでは、 2つの端の点の位置をマウスのドラッグ操作で移動できるようにしてみました。 GradientPaintの設定が繰り返しを行うようになっていると、 端の点を移動することでグラディエーションの繰り返しを実現できます。 (コンストラクタの第5引数で指定する。)
GradientPaintの設定が繰り返しを行なわないようになっていると、 端の点を移動することでグラディエーションの幅を調整できます。 (端の点より外側はすべて指定された色になる。)