JavaTM Platform
Standard Ed. 6

java.awt
クラス RadialGradientPaint

java.lang.Object
  上位を拡張 java.awt.MultipleGradientPaint
      上位を拡張 java.awt.RadialGradientPaint
すべての実装されたインタフェース:
Paint, Transparency

public final class RadialGradientPaint
extends MultipleGradientPaint

RadialGradientPaint クラスは、色の円放射状グラデーションパターンで形状を塗りつぶす手段を提供します。ユーザーはグラデーションの色を 2 色以上指定でき、この場合の描画では、各色の間の補間が行われます。  

ユーザーは、グラデーションパターンを制御する円を指定する必要があります。この円は、中心点と半径で記述されます。その円内にある別の焦点を指定することもできます。焦点は、グラデーションの最初の色の位置を制御します。デフォルトでは、焦点は、円の中心に設定されます。  

この描画は、グラデーションの最初の色を焦点にマップし、最後の色を円周にマップして、その間にあるユーザーが指定した色についてはなめらかに補間します。そのため焦点から円周へと描画されるあらゆる線は、すべてのグラデーションの色を横断します。  

焦点を円の半径の外部で指定すると、グラデーションの最初の色の位置として使用される焦点は、指定した焦点と中心点を結ぶ線と円周の交点に設定されます。  

ユーザーは、グラデーションでの色の分布方法を指定する float 配列を指定する必要があります。これらの値は 0.0 〜 1.0 の範囲内にあって、グラデーションに沿ったキーフレームのように機能する必要があります。これらの値によって、グラデーションを厳密に特定の色にする位置をマークします。  

ユーザーが最初のキーフレーム値を 0 に設定しない場合や、最後のキーフレーム値を 1 に設定しない場合は、キーフレームがその位置に作成され、最初の色や最後の色がその位置に複製されます。たとえば、ユーザーが次の配列を指定してグラデーションを構築するとします。

     {Color.BLUE, Color.RED}, {.3f, .7f}
 
これは、次のキーフレームを持つグラデーションに変換されます。
     {Color.BLUE, Color.BLUE, Color.RED, Color.RED}, {0f, .3f, .7f, 1f}
 

ユーザーは、円の半径の境界外部で色を塗りつぶすときに RadialGradientPaint で実行される動作を選択することもできます。循環方法を指定しない場合は、デフォルトで NO_CYCLE が選択されます。つまり、残りの領域を塗りつぶすために最後のキーフレームの色が使用されます。  

colorSpace パラメータでは、補間が実行されるカラースペース (デフォルトの sRGB または線形化された RGB) を指定できます。

次のコードは、中心点と焦点が同一の場合の RadialGradientPaint の一般的な使い方を示しています。  

     Point2D center = new Point2D.Float(50, 50);
     float radius = 25;
     float[] dist = {0.0f, 0.2f, 1.0f};
     Color[] colors = {Color.RED, Color.WHITE, Color.BLUE};
     RadialGradientPaint p =
         new RadialGradientPaint(center, radius, dist, colors);
 

3 つの循環方法のそれぞれについて、焦点がデフォルトの (中心点に合わされた) ときの上記のコード例の結果は次のイメージのようになります。  

次のコードのように、中心点に合わされていない焦点を指定することもできます。  

     Point2D center = new Point2D.Float(50, 50);
     float radius = 25;
     Point2D focus = new Point2D.Float(40, 40);
     float[] dist = {0.0f, 0.2f, 1.0f};
     Color[] colors = {Color.RED, Color.WHITE, Color.BLUE};
     RadialGradientPaint p =
         new RadialGradientPaint(center, radius, focus,
                                 dist, colors,
                                 CycleMethod.NO_CYCLE);
 

3 つの循環方法のそれぞれについて、焦点が中心点に合わされれていないときの上記のコード例の結果は次のイメージのようになります。  

導入されたバージョン:
1.6
関連項目:
Paint, Graphics2D.setPaint(java.awt.Paint)

入れ子のクラスの概要
 
クラス java.awt.MultipleGradientPaint から継承された入れ子のクラス/インタフェース
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod
 
フィールドの概要
 
インタフェース java.awt.Transparency から継承されたフィールド
BITMASK, OPAQUE, TRANSLUCENT
 
コンストラクタの概要
RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors)
          焦点として中心点を使用して、デフォルトの NO_CYCLE 繰り返しメソッドと SRGB カラースペースで RadialGradientPaint を構築します。
RadialGradientPaint(float cx, float cy, float radius, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
          焦点として中心点を使用して、デフォルトの SRGB カラースペースで RadialGradientPaint を構築します。
RadialGradientPaint(float cx, float cy, float radius, float fx, float fy, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
          デフォルトの SRGB カラースペースで RadialGradientPaint を構築します。
RadialGradientPaint(Point2D center, float radius, float[] fractions, Color[] colors)
          焦点として中心点を使用して、デフォルトの NO_CYCLE 繰り返しメソッドと SRGB カラースペースで RadialGradientPaint を構築します。
RadialGradientPaint(Point2D center, float radius, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
          焦点として中心点を使用して、デフォルトの SRGB カラースペースで RadialGradientPaint を構築します。
RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
          デフォルトの SRGB カラースペースで RadialGradientPaint を構築します。
RadialGradientPaint(Point2D center, float radius, Point2D focus, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
          RadialGradientPaint を構築します。
RadialGradientPaint(Rectangle2D gradientBounds, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
          デフォルトの SRGB カラースペースで RadialGradientPaint を構築します。
 
メソッドの概要
 PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
          カラーパターンを生成するために使用する PaintContext を作成して返します。
 Point2D getCenterPoint()
          放射状グラデーションの中心点のコピーを返します。
 Point2D getFocusPoint()
          放射状グラデーションの焦点のコピーを返します。
 float getRadius()
          放射状グラデーションを定義する円の半径を返します。
 
クラス java.awt.MultipleGradientPaint から継承されたメソッド
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

RadialGradientPaint

public RadialGradientPaint(float cx,
                           float cy,
                           float radius,
                           float[] fractions,
                           Color[] colors)
焦点として中心点を使用して、デフォルトの NO_CYCLE 繰り返しメソッドと SRGB カラースペースで RadialGradientPaint を構築します。

パラメータ:
cx - グラデーションを定義する円の中心点の、 ユーザー空間での X 座標。グラデーションの最後の色は、 この円の円周にマップされる
cy - グラデーションを定義する円の中心点の、 ユーザー空間での Y 座標。グラデーションの最後の色は、 この円の円周にマップされる
radius - 色のグラデーションの広がりを定義する 円の半径
fractions - 0.0 〜 1.0 の範囲の数値。 グラデーションでの色分布を指定する
colors - グラデーションで使用される色の配列。最初の色は 焦点で使用され、最後の色は 円周で使用される
例外:
NullPointerException - fractions 配列が null の場合、 または colors 配列が null の場合
IllegalArgumentException - radius が正でない場合、 fractions.length != colors.length である場合、 colors のサイズが 2 より小さい場合、 fractions の値が 0.0 より小さいか 1.0 より大きい場合、 または fractions が厳密な昇順で指定されない場合

RadialGradientPaint

public RadialGradientPaint(Point2D center,
                           float radius,
                           float[] fractions,
                           Color[] colors)
焦点として中心点を使用して、デフォルトの NO_CYCLE 繰り返しメソッドと SRGB カラースペースで RadialGradientPaint を構築します。

パラメータ:
center - ユーザー空間で、グラデーションを定義する円の 中心点
radius - 色のグラデーションの広がりを定義する 円の半径
fractions - 0.0 〜 1.0 の範囲の数値。 グラデーションでの色分布を指定する
colors - グラデーションで使用される色の配列。最初の色は 焦点で使用され、最後の色は 円周で使用される
例外:
NullPointerException - center 点が null の場合、 fractions 配列が null の場合、 または colors 配列が null の場合
IllegalArgumentException - radius が正でない場合、 fractions.length != colors.length である場合、 colors のサイズが 2 より小さい場合、 fractions の値が 0.0 より小さいか 1.0 より大きい場合、 または fractions が厳密な昇順で指定されない場合

RadialGradientPaint

public RadialGradientPaint(float cx,
                           float cy,
                           float radius,
                           float[] fractions,
                           Color[] colors,
                           MultipleGradientPaint.CycleMethod cycleMethod)
焦点として中心点を使用して、デフォルトの SRGB カラースペースで RadialGradientPaint を構築します。

パラメータ:
cx - グラデーションを定義する円の中心点の、 ユーザー空間での X 座標。グラデーションの最後の色は、 この円の円周にマップされる
cy - グラデーションを定義する円の中心点の、 ユーザー空間での Y 座標。グラデーションの最後の色は、 この円の円周にマップされる
radius - 色のグラデーションの広がりを定義する 円の半径
fractions - 0.0 〜 1.0 の範囲の数値。 グラデーションでの色分布を指定する
colors - グラデーションで使用される色の配列。最初の色は 焦点で使用され、最後の色は 円周で使用される
cycleMethod - NO_CYCLEREFLECTREPEAT のいずれか
例外:
NullPointerException - fractions 配列が null の場合、 colors 配列が null の場合、 または cycleMethod が null の場合
IllegalArgumentException - radius が正でない場合、 fractions.length != colors.length である場合、 colors のサイズが 2 より小さい場合、 fractions の値が 0.0 より小さいか 1.0 より大きい場合、 または fractions が厳密な昇順で指定されない場合

RadialGradientPaint

public RadialGradientPaint(Point2D center,
                           float radius,
                           float[] fractions,
                           Color[] colors,
                           MultipleGradientPaint.CycleMethod cycleMethod)
焦点として中心点を使用して、デフォルトの SRGB カラースペースで RadialGradientPaint を構築します。

パラメータ:
center - ユーザー空間で、グラデーションを定義する円の 中心点
radius - 色のグラデーションの広がりを定義する 円の半径
fractions - 0.0 〜 1.0 の範囲の数値。 グラデーションでの色分布を指定する
colors - グラデーションで使用される色の配列。最初の色は 焦点で使用され、最後の色は 円周で使用される
cycleMethod - NO_CYCLEREFLECTREPEAT のいずれか
例外:
NullPointerException - center 点が null の場合、 fractions 配列が null の場合、 colors 配列が null の場合、 または cycleMethod が null の場合
IllegalArgumentException - radius が正でない場合、 fractions.length != colors.length である場合、 colors のサイズが 2 より小さい場合、 fractions の値が 0.0 より小さいか 1.0 より大きい場合、 または fractions が厳密な昇順で指定されない場合

RadialGradientPaint

public RadialGradientPaint(float cx,
                           float cy,
                           float radius,
                           float fx,
                           float fy,
                           float[] fractions,
                           Color[] colors,
                           MultipleGradientPaint.CycleMethod cycleMethod)
デフォルトの SRGB カラースペースで RadialGradientPaint を構築します。

パラメータ:
cx - グラデーションを定義する円の中心点の、 ユーザー空間での X 座標。グラデーションの最後の色は、 この円の円周にマップされる
cy - グラデーションを定義する円の中心点の、 ユーザー空間での Y 座標。グラデーションの最後の色は、 この円の円周にマップされる
radius - 色のグラデーションの広がりを定義する 円の半径
fx - 最初の色がマップされる、 ユーザー空間内の点の X 座標
fy - 最初の色がマップされる、 ユーザー空間内の点の Y 座標
fractions - 0.0 〜 1.0 の範囲の数値。 グラデーションでの色分布を指定する
colors - グラデーションで使用される色の配列。最初の色は 焦点で使用され、最後の色は 円周で使用される
cycleMethod - NO_CYCLEREFLECTREPEAT のいずれか
例外:
NullPointerException - fractions 配列が null の場合、 colors 配列が null の場合、 または cycleMethod が null の場合
IllegalArgumentException - radius が正でない場合、 fractions.length != colors.length である場合、 colors のサイズが 2 より小さい場合、 fractions の値が 0.0 より小さいか 1.0 より大きい場合、 または fractions が厳密な昇順で指定されない場合

RadialGradientPaint

public RadialGradientPaint(Point2D center,
                           float radius,
                           Point2D focus,
                           float[] fractions,
                           Color[] colors,
                           MultipleGradientPaint.CycleMethod cycleMethod)
デフォルトの SRGB カラースペースで RadialGradientPaint を構築します。

パラメータ:
center - ユーザー空間で、グラデーションを定義する円の 中心点。グラデーションの最後の色は、 この円の円周にマップされる
radius - 色のグラデーションの広がりを定義する 円の半径
focus - 最初の色がマップされるユーザー空間内の点
fractions - 0.0 〜 1.0 の範囲の数値。 グラデーションでの色分布を指定する
colors - グラデーションで使用される色の配列。最初の色は 焦点で使用され、最後の色は 円周で使用される
cycleMethod - NO_CYCLEREFLECTREPEAT のいずれか
例外:
NullPointerException - 点のいずれかが null の場合、 fractions 配列が null の場合、 colors 配列が null の場合、 または cycleMethod が null の場合
IllegalArgumentException - radius が正でない場合、 fractions.length != colors.length である場合、 colors のサイズが 2 より小さい場合、 fractions の値が 0.0 より小さいか 1.0 より大きい場合、 または fractions が厳密な昇順で指定されない場合

RadialGradientPaint

public RadialGradientPaint(Point2D center,
                           float radius,
                           Point2D focus,
                           float[] fractions,
                           Color[] colors,
                           MultipleGradientPaint.CycleMethod cycleMethod,
                           MultipleGradientPaint.ColorSpaceType colorSpace,
                           AffineTransform gradientTransform)
RadialGradientPaint を構築します。

パラメータ:
center - ユーザー空間で、グラデーションを定義する円の 中心点。グラデーションの最後の色は、 この円の円周にマップされる
radius - 色のグラデーションの広がりを定義する 円の半径
focus - 最初の色がマップされるユーザー空間内の点
fractions - 0.0 〜 1.0 の範囲の数値。 グラデーションでの色分布を指定する
colors - グラデーションで使用される色の配列。最初の色は 焦点で使用され、最後の色は 円周で使用される
cycleMethod - NO_CYCLEREFLECTREPEAT のいずれか
colorSpace - 補間に使用するカラースペース。 SRGBLINEAR_RGB のいずれか
gradientTransform - グラデーションに適用する変換
例外:
NullPointerException - 点のいずれかが null の場合、 fractions 配列が null の場合、 colors 配列が null の場合、 cycleMethod が null の場合、 colorSpace が null の場合、 または gradientTransform が null の場合
IllegalArgumentException - radius が正でない場合、 fractions.length != colors.length である場合、 colors のサイズが 2 より小さい場合、 fractions の値が 0.0 より小さいか 1.0 より大きい場合、 または fractions が厳密な昇順で指定されない場合

RadialGradientPaint

public RadialGradientPaint(Rectangle2D gradientBounds,
                           float[] fractions,
                           Color[] colors,
                           MultipleGradientPaint.CycleMethod cycleMethod)
デフォルトの SRGB カラースペースで RadialGradientPaint を構築します。RadialGradientPaint のグラデーションの円は、指定されたバウンディングボックスで定義されます。  

このコンストラクタを使用すると、次のコードまたはそれと同等のコードをより簡単に表現できます。

     double gw = gradientBounds.getWidth();
     double gh = gradientBounds.getHeight();
     double cx = gradientBounds.getCenterX();
     double cy = gradientBounds.getCenterY();
     Point2D center = new Point2D.Double(cx, cy);

     AffineTransform gradientTransform = new AffineTransform();
     gradientTransform.translate(cx, cy);
     gradientTransform.scale(gw / 2, gh / 2);
     gradientTransform.translate(-cx, -cy);

     RadialGradientPaint gp =
         new RadialGradientPaint(center, 1.0f, center,
                                 fractions, colors,
                                 cycleMethod,
                                 ColorSpaceType.SRGB,
                                 gradientTransform);
 

パラメータ:
gradientBounds - ユーザー空間で、グラデーションのもっとも外側の広がりを 定義する円のバウンディングボックス
fractions - 0.0 〜 1.0 の範囲の数値。 グラデーションでの色分布を指定する
colors - グラデーションで使用される色の配列。最初の色は 焦点で使用され、最後の色は 円周で使用される
cycleMethod - NO_CYCLEREFLECTREPEAT のいずれか
例外:
NullPointerException - gradientBounds が null の場合、 fractions 配列が null の場合、 colors 配列が null の場合、 または cycleMethod が null の場合
IllegalArgumentException - gradientBounds が空の場合、 fractions.length != colors.length である場合、 colors のサイズが 2 より小さい場合、 fractions の値が 0.0 より小さいか 1.0 より大きい場合、 または fractions が厳密な昇順で指定されない場合
メソッドの詳細

createContext

public PaintContext createContext(ColorModel cm,
                                  Rectangle deviceBounds,
                                  Rectangle2D userBounds,
                                  AffineTransform transform,
                                  RenderingHints hints)
カラーパターンを生成するために使用する PaintContext を作成して返します。CreateContext に対する ColorModel 引数はヒントに過ぎないので、Paint の実装は ColorModel の引数に null を受け入れる必要があります。アプリケーションが特定の ColorModel を優先して使用しない場合、ColorModel の引数 null は Paint の実装で、ラスタ処理にもっとも効率的と思われる ColorModel を自由に使用できることになります。  

API のドキュメントでは、バージョン 1.4 以前のリリースにおいてこの点を特に指定しなかったので、ColorModel 引数 null を受け入れない Paint の実装がある可能性があります。開発者が任意のソースからの Paint オブジェクトの createContext メソッドに ColorModel 引数 null を渡すコードを記述する場合は、NullPointerException をスローするこれらのコードに対して、null を使用しない ColorModel を作成することにより、安全にコーディングすることが賢明です。

パラメータ:
cm - Paint データを受け取る ColorModel。これは単にヒントとして使用される
deviceBounds - 描画されるグラフィックスプリミティブの デバイス空間でのバウンディングボックス
userBounds - 描画されるグラフィックスプリミティブの ユーザー空間でのバウンディングボックス
transform - ユーザー空間からデバイス空間への AffineTransform
hints - コンテキストオブジェクトが描画の選択肢を 選択するときに使用するヒント
戻り値:
カラーパターンを生成するための PaintContext
関連項目:
PaintContext

getCenterPoint

public Point2D getCenterPoint()
放射状グラデーションの中心点のコピーを返します。

戻り値:
中心点のコピーである Point2D オブジェクト

getFocusPoint

public Point2D getFocusPoint()
放射状グラデーションの焦点のコピーを返します。

戻り値:
焦点のコピーである Point2D オブジェクト

getRadius

public float getRadius()
放射状グラデーションを定義する円の半径を返します。

戻り値:
放射状グラデーションを定義する円の半径

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。