JavaTM 2 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 的方式。使用者可以指定兩種或多種漸變顏色,並且此繪製將在顏色與顏色之間提供一個插值。使用者還可以指定起始點和結束點,它們定義了顏色漸變在使用者空間中的開始和結束位置。

使用者必須提供一個 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% 的白色和藍色之間。

此圖像演示了對以上範例程式碼使用三種循環方法時的情形:

從以下版本開始:
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_CYCLEREFLECTREPEAT
拋出:
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_CYCLEREFLECTREPEAT
拋出:
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_CYCLEREFLECTREPEAT
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,則為 null 的 ColorModel 參數將給予 Paint 實作完全的選擇餘地,使其在光柵處理中使用其首選最高效的 ColorModel。

因為 API 文檔在 1.4 版本之前沒有關於此項的具體描述,因此可能有一些 Paint 實作不能接受 null ColorModel 參數。如果開發人員正在編寫程式碼將 null ColorModel 參數從任意源傳遞給 Paint 物件的 createContext 方法,則為了實作安全的編碼,應該為這些物件建構一個非 null ColorModel,使其拋出 NullPointerException

參數:
cm - 接收 Paint 資料的 ColorModel。這只用作一個提示。
deviceBounds - 正在呈現的圖形圖元的設備空間邊界框
userBounds - 正在呈現的圖形圖元的使用者空間邊界框
transform - 從使用者空間到設備空間的 AffineTransform
hints - 上下文物件用於選擇所呈現內容的提示
返回:
產生顏色網要的 PaintContext
另請參見:
PaintContext

getStartPoint

public Point2D getStartPoint()
返回漸變軸起始點的副本。

返回:
Point2D 物件,它是此 LinearGradientPaint 第一種顏色著色點的副本。

getEndPoint

public Point2D getEndPoint()
返回漸變軸結束點的副本。

返回:
Point2D 物件,它是此 LinearGradientPaint 最後一種顏色著色點的副本

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only