public abstract class AbstractRegionPainter extends Object implements Painter<JComponent>
修飾子と型 | クラスと説明 |
---|---|
protected static class |
AbstractRegionPainter.PaintContext
ペイント時に便利な、状態をカプセル化するクラス。
|
修飾子 | コンストラクタと説明 |
---|---|
protected |
AbstractRegionPainter()
新しい AbstractRegionPainter を作成します
|
修飾子と型 | メソッドと説明 |
---|---|
protected void |
configureGraphics(Graphics2D g)
指定された Graphics2D を構成します。
|
protected float |
decodeAnchorX(float x, float dx)
制御点のエンコードされた X 値とその制御点からアンカーまでのオフセット距離を指定して、アンカーポイントの実際のピクセル位置を表す float 値をデコードし、返します。
|
protected float |
decodeAnchorY(float y, float dy)
制御点のエンコードされた Y 値とその制御点からアンカーまでのオフセット距離を指定して、アンカーポイントの実際のピクセル位置を表す float 値をデコードし、返します。
|
protected Color |
decodeColor(Color color1, Color color2, float midPoint)
ほかの 2 つの色の間のオフセットから派生する色をデコードして返します。
|
protected Color |
decodeColor(String key, float hOffset, float sOffset, float bOffset, int aOffset)
UI デフォルトの基本色から派生する色をデコードして返します。
|
protected LinearGradientPaint |
decodeGradient(float x1, float y1, float x2, float y2, float[] midpoints, Color[] colors)
このメソッドは、LinearGradientPaint を作成するためのパラメータを使用して、線形グラデーションペイントを作成して返します。
|
protected RadialGradientPaint |
decodeRadialGradient(float x, float y, float r, float[] midpoints, Color[] colors)
このメソッドは、RadialGradientPaint を作成するためのパラメータを使用して、放射状グラデーションペイントを作成して返します。
|
protected float |
decodeX(float x)
エンコードされた指定の X 値の実際のピクセル位置を表す float 値をデコードし、返します。
|
protected float |
decodeY(float y)
エンコードされた指定の Y 値の実際のピクセル位置を表す float 値をデコードし、返します。
|
protected abstract void |
doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys)
実際にペイント操作を実行します。
|
protected Color |
getComponentColor(JComponent c, String property, Color defaultColor, float saturationOffset, float brightnessOffset, int alphaOffset)
指定された JComponent からカラープロパティーを取得します。
|
protected Object[] |
getExtendedCacheKeys(JComponent c)
ペインタ実装でイメージキャッシュの検索に含める追加属性を取得します。
|
protected abstract AbstractRegionPainter.PaintContext |
getPaintContext()
このペイント操作の PaintContext を取得します。
|
void |
paint(Graphics2D g, JComponent c, int w, int h)
指定された
Graphics2D オブジェクトに描画します。 |
public final void paint(Graphics2D g, JComponent c, int w, int h)
Painter
指定された Graphics2D
オブジェクトに描画します。このメソッドの実装は、Graphics2D
の状態を変更することができますが、完了時にその状態を復元する必要はありません。多くの場合、呼び出し側は、スクラッチのグラフィックスオブジェクトを渡すことをお勧めします。Graphics2D
には null を指定できません。
グラフィックスオブジェクトの状態は paint
メソッドによって受け付けられますが、受け付けられないこともあります。たとえば、グラフィックスにアンチエイリアスの描画ヒントを設定しても、Painter
の実装によって遵守される場合とされない場合があります。
指定されたオブジェクトパラメータはオプションの構成引数として動作します。たとえば、Component
型を指定できます。それを予測していた Painter
はその Component
から状態を読み取り、状態をペイントに使うことができます。たとえば、実装は backgroundColor を読み取り、それを使います。
一般に、再利用性を高めるため、ほとんどの標準 Painter
はこのパラメータを無視します。これにより、あらゆるコンテキストでそれらを使用できます。object
は null の場合もあります。オブジェクトパラメータが null の場合、実装は NullPointerException をスローしてはいけません。
最後に、width
および height
引数は、Painter
がペイントすべき幅と高さを指定します。具体的には、指定した幅と高さで、ペインタにこの幅と高さいっぱいにペイントするように指示します。g
パラメータにクリップが指定されている場合は、さらに領域が制限されます。
たとえば、グラデーションを描画する Painter
実装があるとします。グラデーションは白から黒に変化します。ペイント領域いっぱいに「引き伸ばされ」ます。そのため、この Painter
を使用して、500 x 500 領域をペイントした場合、左端が黒になり、右端が白になって、その間にスムーズなグラデーションが描画されます。その後、変更せずに、Painter
を再利用して、20x20 のサイズの領域をペイントできます。この領域も左側が黒、右側が白になり、その間にスムーズなグラデーションがペイントされます。
paint
、インタフェース: Painter<JComponent>
g
- 描画対象の Graphics2D。null は指定できません。c
- オプションの構成パラメータ。null も指定できます。w
- ペイントする領域の幅。h
- ペイントする領域の高さ。protected Object[] getExtendedCacheKeys(JComponent c)
c
- 現在の paint 呼び出しのコンポーネントprotected abstract AbstractRegionPainter.PaintContext getPaintContext()
このペイント操作の PaintContext を取得します。このメソッドはすべてのペイントで呼び出されるため、高速で、ガベージを生成しないようにしてください。PaintContext には、キャッシュヒントなどの情報が含まれます。また、実行時の点のデコードに必要なデータも含まれます。このデータには、引き伸ばすインセット、エンコード済みのポイントが定義されたキャンバスサイズ、引き伸ばすインセットを反転するかどうか、などがあります。
このメソッドにより、サブクラスで、場合によっては異なるキャンバスサイズなどを持つさまざまな状態のペイントを 1 つの AbstractRegionPainter 実装にパッケージ化できます。
protected void configureGraphics(Graphics2D g)
指定された Graphics2D を構成します。以後のすべてのペイント操作に影響を与えるペイントの前に、描画ヒントや規則の合成が Graphics2D オブジェクトに適用されることがよくあります。このメソッドは、描画操作が中間バッファーに実行されるかディスプレイに直接実行されるかに関係なく、描画前に Graphics オブジェクトを構成する便利なフックを提供します。
g
- 構成対象の Graphics2D オブジェクト。null は不可。protected abstract void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys)
width
と高さ height
を持つように、単に描画します。パフォーマンス上の理由から、Graphics2D オブジェクトからクリップを読み込み、そのスペース内でのみ描画することをお勧めします。g
- ペイント対象の Graphics2D 表面c
- 描画イベントに関連する JComponent。たとえば、描画される領域が Button の場合、c
は JButton になります。描画される領域が ScrollBarSlider の場合、このコンポーネントは JScrollBar になります。この値は null も可。width
- ペイント対象の領域の幅。前景色をペイントする場合、この値は c.getWidth() と異なることがあることに注意してください。height
- ペイント対象の領域の高さ。前景色をペイントする場合、この値は c.getHeight() と異なることがあることに注意してください。extendedCacheKeys
- getExtendedCacheKeys() を呼び出した結果protected final float decodeX(float x)
x
- エンコードされた x 値 (0...1、または 1...2、または 2...3)IllegalArgumentException
- x < 0
または x > 3
の場合protected final float decodeY(float y)
y
- エンコードされた y 値 (0...1、または 1...2、または 2...3)IllegalArgumentException
- y < 0
または y > 3
の場合protected final float decodeAnchorX(float x, float dx)
x
- ベジェ制御点のエンコードされた x 値 (0...1、または 1...2、または 2...3)dx
- 制御点 x からアンカーまでのオフセット距離IllegalArgumentException
- x < 0
または x > 3
の場合protected final float decodeAnchorY(float y, float dy)
y
- ベジェ制御点のエンコードされた y 値 (0...1、または 1...2、または 2...3)dy
- 制御点 y からアンカーまでのオフセット距離IllegalArgumentException
- y < 0
または y > 3
の場合protected final Color decodeColor(String key, float hOffset, float sOffset, float bOffset, int aOffset)
key
- 基本色が定義されている、UIManager の UI デフォルトテーブルの値に対応するキーhOffset
- 派生に使用される色相のオフセット。sOffset
- 派生に使用される彩度のオフセット。bOffset
- 派生に使用される明度のオフセット。aOffset
- 派生に使用されるアルファのオフセット。0...255 の間protected final Color decodeColor(Color color1, Color color2, float midPoint)
color1
- 最初の色color2
- 2 番目の色midPoint
- 色 1 と色 2 の間のオフセットで、0.0 の値は色 1 で 1.0 の値は色 2protected final LinearGradientPaint decodeGradient(float x1, float y1, float x2, float y2, float[] midpoints, Color[] colors)
x1
- y1
- x2
- y2
- midpoints
- colors
- NullPointerException
- midpoints
配列が null であるか、または colors
配列が null である場合IllegalArgumentException
- 始点と終点が同じ点である場合、midpoints.length != colors.length
である場合、colors
のサイズが 2 がより小さい場合、midpoints
値が 0.0 より小さいか 1.0 より大きい場合、または midpoints
が厳密に昇順で指定されていない場合protected final RadialGradientPaint decodeRadialGradient(float x, float y, float r, float[] midpoints, Color[] colors)
x
- y
- r
- midpoints
- colors
- NullPointerException
- midpoints
配列が null であるか colors
配列が null である場合IllegalArgumentException
- r
が正でない場合、midpoints.length != colors.length
である場合、colors
のサイズが 2 がより小さい場合、midpoints
値が 0.0 より小さいか 1.0 より大きい場合、または midpoints
が厳密に昇順で指定されていない場合protected final Color getComponentColor(JComponent c, String property, Color defaultColor, float saturationOffset, float brightnessOffset, int alphaOffset)
getXXX()
メソッドを調べ、失敗した場合はキー property
のクライアントプロパティーを調べます。それでも Color を返すことに失敗した場合は defaultColor
が返されます。c
- カラープロパティーを取得するためのコンポーネントproperty
- Bean スタイルプロパティーまたはクライアントプロパティーの名前defaultColor
- コンポーネントから色が取得されなかった場合に返す色。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.