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

クラスRepaintManager


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

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

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

      • 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 - コンポーネント
        関連項目:
        JComponent.isValidateRoot(), removeInvalidComponent(javax.swing.JComponent)
      • removeInvalidComponent

        public void removeInvalidComponent​(JComponent component)
        無効なコンポーネントのリストからコンポーネントを削除します。
        パラメータ:
        component - コンポーネント
        関連項目:
        addInvalidComponent(javax.swing.JComponent)
      • 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 - 再ペイントする領域の高さ
        関連項目:
        JComponent.repaint(long, int, int, int, int)
      • addDirtyRegion

        @Deprecated(since="9")
        public void addDirtyRegion​(Applet applet,
                                   int x,
                                   int y,
                                   int w,
                                   int h)
        非推奨。
        Applet APIは推奨されていません。 詳細については、「java.appletパッケージのドキュメント」を参照してください。
        再描画する必要があるComponentのリストにappletを追加します。
        パラメータ:
        applet - 再ペイントするアプレット。nullの場合は何も行われない。
        x - 再ペイントする領域のX座標
        y - 再ペイントする領域のY座標
        w - 再ペイントする領域の幅
        h - 再ペイントする領域の高さ
        導入されたバージョン:
        1.6
        関連項目:
        JApplet.repaint(long, int, int, int, int)
      • 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()の間に完全に描画される場合。
      • 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
        関連項目:
        VolatileImage
      • setDoubleBufferMaximumSize

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

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

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

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