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 색이상 지정할 수 있어 이 경우의 draw에서는, 각 색의 사이의 보간을 합니다. 또, 사용자 공간내에서 색의 그라데이션의 개시 위치와 종료 위치를 정의하는 시점과 종점을 지정할 수도 있습니다.  

사용자는, 그라데이션에서의 색의 분포 방법을 지정하는 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_CYCLE,REFLECT, 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_CYCLE,REFLECT, 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_CYCLE,REFLECT, 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 를 throw 하는 이러한 코드에 대해서, null 를 사용하지 않는 ColorModel 를 작성하는 것으로써, 안전하게 코딩 하는 것이 현명합니다.

파라미터:
cm - Paint 데이터를 받는다 ColorModel . 이것은 단지 힌트로서 사용되는
deviceBounds - draw 되는 graphics primitive의 디바이스 공간에서의 바운딩 박스
userBounds - draw 되는 graphics primitive의 사용자 공간에서의 바운딩 박스
transform - 사용자 공간으로부터 디바이스 공간에의 AffineTransform
hints - 문맥 객체가 draw의 선택사항을 선택할 경우에 사용하는 힌트
반환값:
칼라 패턴을 생성하기 위한 PaintContext
관련 항목:
PaintContext

getStartPoint

public Point2D  getStartPoint()
그라데이션축의 시점의 카피를 돌려줍니다.

반환값:
LinearGradientPaint 의 최초의 색을 고정하는 점의 카피인 Point2D 객체

getEndPoint

public Point2D  getEndPoint()
그라데이션축의 종점의 카피를 돌려줍니다.

반환값:
LinearGradientPaint 의 마지막 색을 고정하는 점의 카피인 Point2D 객체

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 도 참조해 주세요.