- java.lang.Object
-
- javax.swing.plaf.nimbus.AbstractRegionPainter
-
- すべての実装されたインタフェース:
Painter<JComponent>
public abstract class AbstractRegionPainter extends Object implements Painter<JComponent>
Nimbus内の領域またはコンポーネントを描画するためのPainterインスタンスを定義する便利な基底クラス。
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 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を取得します。
-
-
-
メソッドの詳細
-
getExtendedCacheKeys
protected Object[] getExtendedCacheKeys(JComponent c)
ペインタ実装でイメージ・キャッシュの検索に含める追加属性を取得します。 これは、paint(g, c, w, h)メソッドを呼び出すたびにチェックされます。- パラメータ:
c
- 現在のpaint呼出しのコンポーネント- 戻り値:
- キャッシュ・キーに含める追加オブジェクトの配列
-
getPaintContext
protected abstract AbstractRegionPainter.PaintContext getPaintContext()
このペイント操作のPaintContextを取得します。 このメソッドはすべてのペイントで呼び出されるため、高速で、ガベージを生成しないようにしてください。 PaintContextには、キャッシュ・ヒントなどの情報が含まれます。 また、実行時の点のデコードに必要なデータも含まれます。このデータには、引き伸ばすインセット、エンコード済のポイントが定義されたキャンバス・サイズ、引き伸ばすインセットを反転するかどうか、などがあります。
このメソッドにより、サブクラスで、場合によっては異なるキャンバス・サイズなどを持つさまざまな状態のペイントを1つのAbstractRegionPainter実装にパッケージ化できます。
- 戻り値:
- このペイント操作に関連付けられたPaintContext。
-
configureGraphics
protected void configureGraphics(Graphics2D g)
指定されたGraphics2Dを構成します。 以後のすべてのペイント操作に影響を与えるペイントの前に、描画ヒントや規則の合成がGraphics2Dオブジェクトに適用されることがよくあります。 このメソッドは、描画操作が中間バッファに実行されるかディスプレイに直接実行されるかに関係なく、描画前にGraphicsオブジェクトを構成する便利なフックを提供します。
- パラメータ:
g
- 構成対象のGraphics2Dオブジェクト。 nullは不可。
-
doPaint
protected abstract void doPaint(Graphics2D g, JComponent c, int width, int height, Object[] extendedCacheKeys)
実際にペイント操作を実行します。 サブクラスはこのメソッドを実装する必要があります。 渡されたグラフィックス・オブジェクトは、描画対象の実際の表面を表すか、中間バッファである場合があります。 また、事前の変換もされています。 コンポーネントの位置が0、0で幅width
と高さheight
を持つように、単に描画します。 パフォーマンス上の理由から、Graphics2Dオブジェクトからクリップを読み込み、そのスペース内でのみ描画することをお勧めします。- パラメータ:
g
- ペイント対象のGraphics2D表面c
- 描画イベントに関連するJComponent。 たとえば、描画される領域がButtonの場合、c
はJButtonになります。 描画される領域がScrollBarSliderの場合、このコンポーネントはJScrollBarになります。 この値はnullも可。width
- ペイント対象の領域の幅。 前景色をペイントする場合、この値はc.getWidth()と異なることがあることに注意してください。height
- ペイント対象の領域の高さ。 前景色をペイントする場合、この値はc.getHeight()と異なることがあることに注意してください。extendedCacheKeys
- getExtendedCacheKeys()を呼び出した結果
-
decodeX
protected final float decodeX(float x)
エンコードされた指定のX値の実際のピクセル位置を表すfloat値をデコードし、返します。- パラメータ:
x
- エンコードされたx値(0...1、または1...2、または2...3)- 戻り値:
- デコードされたx値
- 例外:
IllegalArgumentException
-x < 0
またはx> 3
の場合
-
decodeY
protected final float decodeY(float y)
エンコードされた指定のY値の実際のピクセル位置を表すfloat値をデコードし、返します。- パラメータ:
y
- エンコードされたy値(0...1、または1...2、または2...3)- 戻り値:
- デコードされたy値
- 例外:
IllegalArgumentException
-y < 0
またはy> 3
の場合
-
decodeAnchorX
protected final float decodeAnchorX(float x, float dx)
制御点のエンコードされたX値とその制御点からアンカーまでのオフセット距離を指定して、アンカー・ポイントの実際のピクセル位置を表すfloat値をデコードし、返します。- パラメータ:
x
- ベジェ制御点のエンコードされたx値(0...1、または1...2、または2...3)dx
- 制御点xからアンカーまでのオフセット距離- 戻り値:
- デコードされた制御点のx位置
- 例外:
IllegalArgumentException
-x < 0
またはx> 3
の場合
-
decodeAnchorY
protected final float decodeAnchorY(float y, float dy)
制御点のエンコードされたY値とその制御点からアンカーまでのオフセット距離を指定して、アンカー・ポイントの実際のピクセル位置を表すfloat値をデコードし、返します。- パラメータ:
y
- ベジェ制御点のエンコードされたy値(0...1、または1...2、または2...3)dy
- 制御点yからアンカーまでのオフセット距離- 戻り値:
- デコードされた制御点のy位置
- 例外:
IllegalArgumentException
-y < 0
またはy> 3
の場合
-
decodeColor
protected final Color decodeColor(String key, float hOffset, float sOffset, float bOffset, int aOffset)
UIデフォルトの基本色から派生する色をデコードして返します。- パラメータ:
key
- 基本色が定義されている、UIManagerのUIデフォルト表の値に対応するキーhOffset
- 派生に使用される色相のオフセット。sOffset
- 派生に使用される彩度のオフセット。bOffset
- 派生に使用される明度のオフセット。aOffset
- 派生に使用されるアルファのオフセット。 次の範囲内 0...255- 戻り値:
- 派生した色。親のuiDefaultの色が変更されるとカラー値が変更される。
-
decodeColor
protected final Color decodeColor(Color color1, Color color2, float midPoint)
ほかの2つの色の間のオフセットから派生する色をデコードして返します。- パラメータ:
color1
- 最初の色color2
- 2番目の色midPoint
- 色1と色2の間のオフセットで、0.0の値は色1で1.0の値は色2- 戻り値:
- 派生した色
-
decodeGradient
protected final LinearGradientPaint decodeGradient(float x1, float y1, float x2, float y2, float[] midpoints, Color[] colors)
このメソッドは、LinearGradientPaintを作成するためのパラメータを使用して、線形グラデーション・ペイントを作成して返します。 このメソッドの主な目的の1つは、始点と終点が等しいLinearGradientPaintの作成を避けることにあります。 このような場合、オーバーラップを避けるために終点yが若干大きくなります。- パラメータ:
x1
- x1y1
- y1x2
- x2y2
- y2midpoints
- 中点colors
- 色- 戻り値:
- 有効なLinearGradientPaint。 このメソッドがnullを返すことはない。
- 例外:
NullPointerException
-midpoints
配列がnullであるか、またはcolors
配列がnullである場合IllegalArgumentException
- 始点と終点が同じ点である場合、midpoints.length != colors.length
である場合、colors
のサイズが2がより小さい場合、midpoints
値が0.0より小さいか1.0より大きい場合、またはmidpoints
が厳密に昇順で指定されていない場合
-
decodeRadialGradient
protected final RadialGradientPaint decodeRadialGradient(float x, float y, float r, float[] midpoints, Color[] colors)
このメソッドは、RadialGradientPaintを作成するためのパラメータを使用して、放射状グラデーション・ペイントを作成して返します。 このメソッドの主な目的の1つは、半径が正でないRadialGradientPaintの作成を避けることにあります。 このような場合、0を避けるために半径が若干大きくなります。- パラメータ:
x
- x-coordinatey
- y-coordinater
- radiusmidpoints
- 中点colors
- 色- 戻り値:
- 有効なRadialGradientPaint。 このメソッドがnullを返すことはない。
- 例外:
NullPointerException
-midpoints
配列がnullであるかcolors
配列がnullである場合IllegalArgumentException
-r
が正でない場合、midpoints.length != colors.length
である場合、colors
のサイズが2がより小さい場合、midpoints
値が0.0より小さいか1.0より大きい場合、またはmidpoints
が厳密に昇順で指定されていない場合
-
getComponentColor
protected final Color getComponentColor(JComponent c, String property, Color defaultColor, float saturationOffset, float brightnessOffset, int alphaOffset)
指定されたJComponentからカラー・プロパティを取得します。 最初にgetXXX()
メソッドを調べ、失敗した場合はキーproperty
のクライアント・プロパティを調べます。 それでもColorを返すことに失敗した場合はdefaultColor
が返されます。- パラメータ:
c
- カラー・プロパティを取得するためのコンポーネントproperty
- Beanスタイル・プロパティまたはクライアント・プロパティの名前defaultColor
- コンポーネントから色が取得されなかった場合に返す色。saturationOffset
- (デフォルトの色が返された場合は無視される)が返す色のHSB彩度コンポーネントを追加的に変更します。brightnessOffset
- 戻り値(デフォルトの色が返された場合は無視される)の色のHSB輝度コンポーネントを追加的に変更します。alphaOffset
- 戻り値(デフォルトの色が返された場合は無視される)の色のARGBアルファ・コンポーネントを追加的に変更します。- 戻り値:
- コンポーネントまたはdefaultColorから取得された色
-
-