モジュール java.desktop
パッケージ javax.swing.plaf.nimbus

クラスAbstractRegionPainter

java.lang.Object
javax.swing.plaf.nimbus.AbstractRegionPainter
すべての実装されたインタフェース:
Painter<JComponent>

public abstract class AbstractRegionPainter extends Object implements Painter<JComponent>
Nimbus内の領域またはコンポーネントを描画するためのPainterインスタンスを定義する便利な基底クラス。
  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型
    クラス
    説明
    protected static class 
    ペイント時に便利な、状態をカプセル化するクラス。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    新しいAbstractRegionPainterを作成します
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected void
    指定された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デフォルトの基本色から派生する色をデコードして返します。
    decodeGradient​(float x1, float y1, float x2, float y2, float[] midpoints, Color[] colors)
    このメソッドは、LinearGradientPaintを作成するためのパラメータを使用して、線形グラデーション・ペイントを作成して返します。
    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[]
    ペインタ実装でイメージ・キャッシュの検索に含める追加属性を取得します。
    このペイント操作のPaintContextを取得します。
    void
    paint​(Graphics2D g, JComponent c, int w, int h)
    指定されたGraphics2Dオブジェクトに描画します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • AbstractRegionPainter

      protected AbstractRegionPainter()
      新しいAbstractRegionPainterを作成します
  • メソッドの詳細

    • paint

      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 - ペイントする領域の高さ。
    • 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 - x1
      y1 - y1
      x2 - x2
      y2 - y2
      midpoints - 中点
      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-coordinate
      y - y-coordinate
      r - radius
      midpoints - 中点
      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から取得された色