JavaTM Platform
Standard Ed. 6

javax.swing
クラス RepaintManager

java.lang.Object
  上位を拡張 javax.swing.RepaintManager

public class RepaintManager
extends Object

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

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


コンストラクタの概要
RepaintManager()
          新しい RepaintManager のインスタンスを生成します。
 
メソッドの概要
 void addDirtyRegion(Applet applet, int x, int y, int w, int h)
          再ペイントする必要がある Component のリストに applet を追加します。
 void addDirtyRegion(JComponent c, int x, int y, int w, int h)
          再表示されるコンポーネントのリストにコンポーネントを追加します。
 void addDirtyRegion(Window window, int x, int y, int w, int h)
          再ペイントする必要がある Component のリストに window を追加します。
 void addInvalidComponent(JComponent invalidComponent)
          レイアウトの必要に応じてコンポーネントをマークし、コンポーネントの最初の isValidateRoot() の上位オブジェクトを検証するイベントディスパッチスレッドのために実行可能なコンポーネントを待ち行列に入れます。
static RepaintManager currentManager(Component c)
          Component を指定して、呼び出し側スレッドの RepaintManager を返します。
static RepaintManager currentManager(JComponent c)
          JComponent を指定して、呼び出し側スレッドの RepaintManager を返します。
 Rectangle getDirtyRegion(JComponent aComponent)
          コンポーネントの現在のダーティーリージョンを返します。
 Dimension getDoubleBufferMaximumSize()
          最大のダブルバッファーサイズを返します。
 Image getOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
          ダブルバッファーとしてコンポーネント c とともに使用されるオフスクリーンバッファーを返します。
 Image getVolatileOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
          ダブルバッファーとして指定のコンポーネント c とともに使用される volatile のオフスクリーンバッファーを返します。
 boolean isCompletelyDirty(JComponent aComponent)
          次の paintDirtyRegions() で aComponent が完全にペイントされる場合に true を返す簡易メソッドです。
 boolean isDoubleBufferingEnabled()
          この RepaintManager に対してダブルバッファリングが行われる場合に true を返します。
 void markCompletelyClean(JComponent aComponent)
          完全にクリーンなコンポーネントをマークします。
 void markCompletelyDirty(JComponent aComponent)
          完全にダーティーなコンポーネントをマークします。
 void paintDirtyRegions()
          ダーティーとしてマークされたコンポーネントをすべてペイントします。
 void removeInvalidComponent(JComponent component)
          無効なコンポーネントのリストからコンポーネントを削除します。
static void setCurrentManager(RepaintManager aRepaintManager)
          呼び出し側スレッドで使用される RepaintManager を設定します。
 void setDoubleBufferingEnabled(boolean aFlag)
          この RepaintManager でのダブルバッファリングを有効または無効にします。
 void setDoubleBufferMaximumSize(Dimension d)
          最大のダブルバッファーサイズを設定します。
 String toString()
          このオブジェクトのプロパティーを表示および識別する文字列を返します。
 void validateInvalidComponents()
          無効としてマークされたコンポーネントをすべて検証します。
 
クラス 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() の上位オブジェクトを検証するイベントディスパッチスレッドのために実行可能なコンポーネントを待ち行列に入れます。

関連項目:
JComponent.isValidateRoot(), removeInvalidComponent(javax.swing.JComponent)

removeInvalidComponent

public void removeInvalidComponent(JComponent 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

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
関連項目:
JFrame.repaint(long, int, int, int, int), JWindow.repaint(long, int, int, int, int), JDialog.repaint(long, int, int, int, int)

addDirtyRegion

public void addDirtyRegion(Applet applet,
                           int x,
                           int y,
                           int w,
                           int h)
再ペイントする必要がある 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)
コンポーネントの現在のダーティーリージョンを返します。コンポーネントがダーティーでない場合は、空の矩形を返します。


markCompletelyDirty

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


markCompletelyClean

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


isCompletelyDirty

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


validateInvalidComponents

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

関連項目:
addInvalidComponent(javax.swing.JComponent)

paintDirtyRegions

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

関連項目:
addDirtyRegion(javax.swing.JComponent, int, int, int, int)

toString

public String toString()
このオブジェクトのプロパティーを表示および識別する文字列を返します。

オーバーライド:
クラス Object 内の toString
戻り値:
このオブジェクトの文字列表現

getOffscreenBuffer

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


getVolatileOffscreenBuffer

public Image getVolatileOffscreenBuffer(Component c,
                                        int proposedWidth,
                                        int proposedHeight)
ダブルバッファーとして指定のコンポーネント c とともに使用される volatile のオフスクリーンバッファーを返します。返されるイメージは VolatileImage のインスタンスであり、VolatileImage オブジェクトをインスタンス化できなかった場合は null が返されます。バッファーは、(proposedWidth, proposedHeight) より小さい場合があります。これが発生するのは、受け取り側の再ペイントマネージャーに対して最大のダブルバッファーサイズが設定された場合です。

導入されたバージョン:
1.4
関連項目:
VolatileImage

setDoubleBufferMaximumSize

public void setDoubleBufferMaximumSize(Dimension d)
最大のダブルバッファーサイズを設定します。


getDoubleBufferMaximumSize

public Dimension getDoubleBufferMaximumSize()
最大のダブルバッファーサイズを返します。

戻り値:
最大サイズを表す Dimension オブジェクト

setDoubleBufferingEnabled

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

パラメータ:
aFlag - ダブルバッファリングを有効にする場合は true
関連項目:
isDoubleBufferingEnabled()

isDoubleBufferingEnabled

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

戻り値:
このオブジェクトに対してダブルバッファリングが行われる場合は true

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。