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

クラスRepaintManager

java.lang.Object
javax.swing.RepaintManager

public class RepaintManager extends Object
このクラスは再ペイント要求を管理し、コンポーネント・ツリーのメンバーに対する複数の要求を1回の再ペイントにまとめることなどにより、再ペイントの回数を最小限に抑えます。

1.6以降、RepaintManagerは、Swingのトップレベル・コンポーネント(JAppletJWindowJFrame、およびJDialog)の再ペイント要求を処理するようになりました。 これらのコンポーネントでrepaintを呼び出すと、適切なaddDirtyRegionメソッドが呼び出されます。

導入されたバージョン:
1.2
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    新しいRepaintManagerのインスタンスを生成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    addDirtyRegion(Applet applet, int x, int y, int w, int h)
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    Applet APIは非推奨です。
    void
    addDirtyRegion(Window window, int x, int y, int w, int h)
    再描画する必要があるComponentのリストにwindowを追加します。
    void
    addDirtyRegion(JComponent c, int x, int y, int w, int h)
    リフレッシュされるコンポーネントのリストにコンポーネントを追加します。
    void
    addInvalidComponent(JComponent invalidComponent)
    レイアウトの必要に応じてコンポーネントをマークし、コンポーネントの最初のisValidateRoot()の上位オブジェクトを検証するイベント・ディスパッチ・スレッドのために実行可能なコンポーネントを待ち行列に入れます。
    Componentを指定して、呼出し側スレッドのRepaintManagerを返します。
    JComponentを指定して、呼出し側スレッドのRepaintManagerを返します。
    コンポーネントの現在のダーティ・リージョンを返します。
    最大のdoubleバッファ・サイズを返します。
    getOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
    コンポーネントcとともにdoubleバッファとして使用されるオフスクリーン・バッファを返します。
    getVolatileOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
    指定されたコンポーネントcとともにdoubleバッファとして使用されるvolatileオフスクリーン・バッファを返します。
    boolean
    次のpaintDirtyRegions()でaComponentが完全にペイントされる場合にtrueを返す簡易メソッドです。
    boolean
    このRepaintManagerに対してダブル・バッファリングが行われる場合にtrueを返します。
    void
    完全にクリーンなコンポーネントをマークします。
    void
    完全にダーティなコンポーネントをマークします。
    void
    ダーティとしてマークされたコンポーネントをすべてペイントします。
    void
    無効なコンポーネントのリストからコンポーネントを削除します。
    static void
    呼出し側スレッドで使用されるRepaintManagerを設定します。
    void
    このRepaintManagerでのダブル・バッファリングを有効または無効にします。
    void
    最大のdoubleバッファ・サイズを設定します。
    このオブジェクトのプロパティを表示および識別する文字列を返します。
    void
    無効としてマークされたコンポーネントをすべて検証します。

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

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

    • RepaintManager

      public RepaintManager()
      新しいRepaintManagerのインスタンスを生成します。 このコンストラクタを直接呼び出すことはほとんどありません。 デフォルトのRepaintManagerを取得するには、RepaintManager.currentManager(JComponent)(通常はthis)を使用します。
  • メソッドの詳細

    • currentManager

      public static RepaintManager currentManager(Component c)
      Componentを指定して、呼出し側スレッドのRepaintManagerを返します。
      パラメータ:
      c - Component。デフォルトの実装では使用されないが、オーバーライド版で使用すると異なるRepaintManagerを返す可能性がある
      戻り値:
      RepaintManagerオブジェクト
    • currentManager

      public static RepaintManager currentManager(JComponent c)
      JComponentを指定して、呼出し側スレッドのRepaintManagerを返します。

      ノート: このメソッドは、旧バージョンのSwingライブラリのバイナリとの下位互換性のために提供されます。 このメソッドは、単にcurrentManager(Component)によって返される結果を返します。

      パラメータ:
      c - JComponent。使用されない
      戻り値:
      RepaintManagerオブジェクト
    • setCurrentManager

      public static void setCurrentManager(RepaintManager aRepaintManager)
      呼出し側スレッドで使用されるRepaintManagerを設定します。aRepaintManagerが、呼出し側スレッドのスレッド・グループの現在のRepaintManagerになります。
      パラメータ:
      aRepaintManager - 使用するRepaintManagerオブジェクト
    • addInvalidComponent

      public void addInvalidComponent(JComponent invalidComponent)
      レイアウトの必要に応じてコンポーネントをマークし、コンポーネントの最初のisValidateRoot()の上位オブジェクトを検証するイベント・ディスパッチ・スレッドのために実行可能なコンポーネントを待ち行列に入れます。
      パラメータ:
      invalidComponent - コンポーネント
      関連項目:
    • removeInvalidComponent

      public void removeInvalidComponent(JComponent component)
      無効なコンポーネントのリストからコンポーネントを削除します。
      パラメータ:
      component - コンポーネント
      関連項目:
    • addDirtyRegion

      public void addDirtyRegion(JComponent c, int x, int y, int w, int h)
      リフレッシュされるコンポーネントのリストにコンポーネントを追加します。 cにすでにダーティ・リージョンがある場合、矩形(x,y,w,h)は再描画される領域と結合されます。
      パラメータ:
      c - 再ペイントするコンポーネント。nullの場合は何も行われない。
      x - 再ペイントする領域のX座標
      y - 再ペイントする領域のY座標
      w - 再ペイントする領域の幅
      h - 再ペイントする領域の高さ
      関連項目:
    • addDirtyRegion

      public void addDirtyRegion(Window window, int x, int y, int w, int h)
      再描画する必要があるComponentのリストにwindowを追加します。
      パラメータ:
      window - 再ペイントするウィンドウ。nullの場合は何も行われない。
      x - 再ペイントする領域のX座標
      y - 再ペイントする領域のY座標
      w - 再ペイントする領域の幅
      h - 再ペイントする領域の高さ
      導入されたバージョン:
      1.6
      関連項目:
    • addDirtyRegion

      @Deprecated(since="9", forRemoval=true) public void addDirtyRegion(Applet applet, int x, int y, int w, int h)
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      Applet APIは非推奨です。 詳細については、「java.appletパッケージのドキュメント」を参照してください。
      再描画する必要があるComponentのリストにappletを追加します。
      パラメータ:
      applet - 再ペイントするアプレット。nullの場合は何も行われない。
      x - 再ペイントする領域のX座標
      y - 再ペイントする領域のY座標
      w - 再ペイントする領域の幅
      h - 再ペイントする領域の高さ
      導入されたバージョン:
      1.6
      関連項目:
    • getDirtyRegion

      public Rectangle getDirtyRegion(JComponent aComponent)
      コンポーネントの現在のダーティ・リージョンを返します。 コンポーネントがダーティでない場合は、空の矩形を返します。
      パラメータ:
      aComponent - コンポーネント
      戻り値:
      地域
    • markCompletelyDirty

      public void markCompletelyDirty(JComponent aComponent)
      完全にダーティなコンポーネントをマークします。aComponentは、次のpaintDirtyRegions()の呼出しで完全にペイントされます。
      パラメータ:
      aComponent - コンポーネント
    • markCompletelyClean

      public void markCompletelyClean(JComponent aComponent)
      完全にクリーンなコンポーネントをマークします。aComponentは、次のpaintDirtyRegions()の呼出しでペイントされることはありません。
      パラメータ:
      aComponent - コンポーネント
    • isCompletelyDirty

      public boolean isCompletelyDirty(JComponent aComponent)
      次のpaintDirtyRegions()でaComponentが完全にペイントされる場合にtrueを返す簡易メソッドです。 ダーティ・リージョンを計算すると、コンポーネントに負荷が大きい場合は、このメソッドを使用してください。trueを返す場合には、ダーティ・リージョンの計算を避けられます。
      パラメータ:
      aComponent - コンポーネント
      戻り値:
      true aComponentが次のpaintDirtyRegions()の間に完全に描画される場合。
    • validateInvalidComponents

      public void validateInvalidComponents()
      無効としてマークされたコンポーネントをすべて検証します。
      関連項目:
    • paintDirtyRegions

      public void paintDirtyRegions()
      ダーティとしてマークされたコンポーネントをすべてペイントします。
      関連項目:
    • toString

      public String toString()
      このオブジェクトのプロパティを表示および識別する文字列を返します。
      オーバーライド:
      toString、クラスObject
      戻り値:
      このオブジェクトの文字列表現
    • getOffscreenBuffer

      public Image getOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
      コンポーネントcとともにdoubleバッファとして使用されるオフスクリーン・バッファを返します。 デフォルトでは、RepaintManagerごとにdoubleバッファがあります。 バッファは、(proposedWidth,proposedHeight)より小さい場合があります。これが発生するのは、受取り側の再ペイント・マネージャに対して最大のdoubleバッファ・サイズが設定された場合です。
      パラメータ:
      c - コンポーネント
      proposedWidth - バッファの幅
      proposedHeight - バッファの高さ
      戻り値:
      イメージ
    • getVolatileOffscreenBuffer

      public Image getVolatileOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
      指定されたコンポーネントcとともにdoubleバッファとして使用されるvolatileオフスクリーン・バッファを返します。 返されるイメージはVolatileImageのインスタンスであり、VolatileImageオブジェクトをインスタンス化できなかった場合はnullが返されます。 バッファは、(proposedWidth,proposedHeight)より小さい場合があります。 これが発生するのは、受け取り側の再ペイント・マネージャに対して最大のdoubleバッファ・サイズが設定された場合です。
      パラメータ:
      c - コンポーネント
      proposedWidth - バッファの幅
      proposedHeight - バッファの高さ
      戻り値:
      揮発性イメージ
      導入されたバージョン:
      1.4
      関連項目:
    • setDoubleBufferMaximumSize

      public void setDoubleBufferMaximumSize(Dimension d)
      最大のdoubleバッファ・サイズを設定します。
      パラメータ:
      d - ディメンション
    • getDoubleBufferMaximumSize

      public Dimension getDoubleBufferMaximumSize()
      最大のdoubleバッファ・サイズを返します。
      戻り値:
      最大サイズを表すDimensionオブジェクト
    • setDoubleBufferingEnabled

      public void setDoubleBufferingEnabled(boolean aFlag)
      このRepaintManagerでのダブル・バッファリングを有効または無効にします。 注意: このプロパティのデフォルト値は、各プラットフォームで最適なペイント・パフォーマンスを実現できるように設定されています。プログラムでこのプロパティを直接変更することはお薦めできません。
      パラメータ:
      aFlag - ダブル・バッファリングを有効にする場合はtrue
      関連項目:
    • isDoubleBufferingEnabled

      public boolean isDoubleBufferingEnabled()
      このRepaintManagerに対してダブル・バッファリングが行われる場合にtrueを返します。 このプロパティのデフォルト値は、プラットフォームによって異なります。 AWTでネイティブなダブル・バッファリングがサポートされているプラットフォームでは、Swingで不要なバッファリングが行われないように、デフォルト値がfalseに設定されます。 ネイティブなダブル・バッファリングがサポートされていないプラットフォームでは、デフォルト値がtrueに設定されます。
      戻り値:
      このオブジェクトに対してダブル・バッファリングが行われる場合はtrue