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)
指定された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, 2014, Oracle and/or its affiliates. All rights reserved.