モジュール java.desktop
パッケージ 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}
 

ユーザーは、CycleMethodREFLECTIONまたはREPEATに設定することによって、始点と終点の外側の領域を塗りつぶすときにLinearGradientPaintオブジェクトで実行される動作を選択することもできます。 反射グラデーションまたは繰返しグラデーションでは、1つのグラデーションの中にある任意の2色の間の距離は、始点と終点の間のそれら2色の距離と同じになります。 ピクセルの粒度でのサンプリングのために、間隔にわずかな変動がいくつか発生する可能性があることに注意してください。 循環方法を指定しない場合は、デフォルトで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
関連項目: