JavaTM Platform
Standard Ed. 6

java.awt
クラス LinearGradientPaint

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

public final class LinearGradientPaint
extends MultipleGradientPaint

LinearGradientPaint クラスは、色の線形グラデーションパターンで Shape を塗りつぶす手段を提供します。ユーザーはグラデーションの色を 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}
 

ユーザーは、始点と終点の外側で色を塗りつぶすときに LinearGradientPaint で実行される動作を選択することもできます。循環方法を指定しない場合は、デフォルトで NO_CYCLE が選択されます。つまり、残りの領域を塗りつぶすために端点の色が使用されます。

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

次のコードは、LinearGradientPaint の一般的な使い方を示しています。

 

     Point2D start = new Point2D.Float(0, 0);
     Point2D end = new Point2D.Float(50, 50);
     float[] dist = {0.0f, 0.2f, 1.0f};
     Color[] colors = {Color.RED, Color.WHITE, Color.BLUE};
     LinearGradientPaint p =
         new LinearGradientPaint(start, end, dist, colors);
 

このコードにより、LinearGradientPaint が作成され、グラデーションの最初の 20% は赤と白の間で補間され、残りの 80% は白と青の間で補間されます。

3 つの循環方法のそれぞれについて、上記のコード例の結果は次のイメージのようになります。

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

入れ子のクラスの概要
 
クラス java.awt.MultipleGradientPaint から継承された入れ子のクラス/インタフェース
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod
 
フィールドの概要
 
インタフェース java.awt.Transparency から継承されたフィールド
BITMASK, OPAQUE, TRANSLUCENT
 
コンストラクタの概要
LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors)
          デフォルトの NO_CYCLE 繰り返しメソッドと sRGB カラースペースを使用して、LinearGradientPaint を構築します。
LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
          デフォルトの sRGB カラースペースを使用して、LinearGradientPaint を構築します。
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors)
          デフォルトの NO_CYCLE 繰り返しメソッドと sRGB カラースペースを使用して、LinearGradientPaint を構築します。
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
          デフォルトの sRGB カラースペースを使用して、LinearGradientPaint を構築します。
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
          LinearGradientPaint を構築します。
 
メソッドの概要
 PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
          カラーパターンを生成するために使用する PaintContext を作成して返します。
 Point2D getEndPoint()
          放射状グラデーションの焦点のコピーを返します。
 Point2D getStartPoint()
          グラデーション軸の始点のコピーを返します。
 
クラス java.awt.MultipleGradientPaint から継承されたメソッド
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

LinearGradientPaint

public LinearGradientPaint(float startX,
                           float startY,
                           float endX,
                           float endY,
                           float[] fractions,
                           Color[] colors)
デフォルトの NO_CYCLE 繰り返しメソッドと sRGB カラースペースを使用して、LinearGradientPaint を構築します。

パラメータ:
startX - ユーザー空間でグラデーション軸の始点の X 座標
startY - ユーザー空間でグラデーション軸の始点の Y 座標
endX - ユーザー空間でグラデーション軸の終点の X 座標
endY - ユーザー空間でグラデーション軸の終点の Y 座標
fractions - 0.0 〜 1.0 の範囲の数値。グラデーションでの色分布を指定する
colors - 各小数値に対応する色の配列
例外:
NullPointerException - fractions 配列が null の場合、または colors 配列が null の場合
IllegalArgumentException - 始点と終点が同じ点である場合、fractions.length != colors.length である場合、colors のサイズが 2 より小さい場合、fractions の値が 0.0 より小さいか 1.0 より大きい場合、または fractions が厳密な昇順で指定されない場合

LinearGradientPaint

public LinearGradientPaint(float startX,
                           float startY,
                           float endX,
                           float endY,
                           float[] fractions,
                           Color[] colors,
                           MultipleGradientPaint.CycleMethod cycleMethod)
デフォルトの sRGB カラースペースを使用して、LinearGradientPaint を構築します。

パラメータ:
startX - ユーザー空間でグラデーション軸の始点の X 座標
startY - ユーザー空間でグラデーション軸の始点の Y 座標
endX - ユーザー空間でグラデーション軸の終点の X 座標
endY - ユーザー空間でグラデーション軸の終点の Y 座標
fractions - 0.0 〜 1.0 の範囲の数値。グラデーションでの色分布を指定する
colors - 各小数値に対応する色の配列
cycleMethod - NO_CYCLEREFLECT、または REPEAT
例外:
NullPointerException - fractions 配列が null の場合、colors 配列が null の場合、または cycleMethod が null の場合
IllegalArgumentException - 始点と終点が同じ点である場合、fractions.length != colors.length である場合、colors のサイズが 2 より小さい場合、fractions の値が 0.0 より小さいか 1.0 より大きい場合、または fractions が厳密な昇順で指定されない場合

LinearGradientPaint

public LinearGradientPaint(Point2D start,
                           Point2D end,
                           float[] fractions,
                           Color[] colors)
デフォルトの NO_CYCLE 繰り返しメソッドと sRGB カラースペースを使用して、LinearGradientPaint を構築します。

パラメータ:
start - ユーザー空間内でグラデーション軸の始点を表す Point2D
end - ユーザー空間内でグラデーション軸の終点を表す Point2D
fractions - 0.0 〜 1.0 の範囲の数値。グラデーションでの色分布を指定する
colors - 各小数値に対応する色の配列
例外:
NullPointerException - 点のいずれかが null の場合、fractions 配列が null の場合、または colors 配列が null の場合
IllegalArgumentException - 始点と終点が同じ点である場合、fractions.length != colors.length である場合、colors のサイズが 2 より小さい場合、fractions の値が 0.0 より小さいか 1.0 より大きい場合、または fractions が厳密な昇順で指定されない場合

LinearGradientPaint

public LinearGradientPaint(Point2D start,
                           Point2D end,
                           float[] fractions,
                           Color[] colors,
                           MultipleGradientPaint.CycleMethod cycleMethod)
デフォルトの sRGB カラースペースを使用して、LinearGradientPaint を構築します。

パラメータ:
start - ユーザー空間内でグラデーション軸の始点を表す Point2D
end - ユーザー空間内でグラデーション軸の終点を表す Point2D
fractions - 0.0 〜 1.0 の範囲の数値。グラデーションでの色分布を指定する
colors - 各小数値に対応する色の配列
cycleMethod - NO_CYCLEREFLECT、または REPEAT
例外:
NullPointerException - 点のいずれかが null の場合、fractions 配列が null の場合、colors 配列が null の場合、または cycleMethod が null の場合
IllegalArgumentException - 始点と終点が同じ点である場合、fractions.length != colors.length である場合、colors のサイズが 2 より小さい場合、fractions の値が 0.0 より小さいか 1.0 より大きい場合、または fractions が厳密な昇順で指定されない場合

LinearGradientPaint

public LinearGradientPaint(Point2D start,
                           Point2D end,
                           float[] fractions,
                           Color[] colors,
                           MultipleGradientPaint.CycleMethod cycleMethod,
                           MultipleGradientPaint.ColorSpaceType colorSpace,
                           AffineTransform gradientTransform)
LinearGradientPaint を構築します。

パラメータ:
start - ユーザー空間内でグラデーション軸の始点を表す Point2D
end - ユーザー空間内でグラデーション軸の終点を表す Point2D
fractions - 0.0 〜 1.0 の範囲の数値。グラデーションでの色分布を指定する
colors - 各小数値に対応する色の配列
cycleMethod - NO_CYCLEREFLECT、または REPEAT
colorSpace - 補間に使用するカラースペース。SRGBLINEAR_RGB のいずれか
gradientTransform - グラデーションに適用する変換
例外:
NullPointerException - 点のいずれかが null の場合、fractions 配列が null の場合、colors 配列が null の場合、cycleMethod が null の場合、colorSpace が null の場合、または gradientTransform が null の場合
IllegalArgumentException - 始点と終点が同じ点である場合、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

getStartPoint

public Point2D getStartPoint()
グラデーション軸の始点のコピーを返します。

戻り値:
この LinearGradientPaint の最初の色を固定する点のコピーを表す Point2D オブジェクト

getEndPoint

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

戻り値:
この LinearGradientPaint の最後の色を固定する点のコピーを表す Point2D オブジェクト

JavaTM Platform
Standard Ed. 6

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

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