|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.swing.RepaintManager
This class manages repaint requests, allowing the number of repaints to be minimized, for example by collapsing multiple requests into a single repaint for members of a component tree.
Nested Class Summary | |
private class |
RepaintManager.DoubleBufferInfo
|
Field Summary | |
(package private) Hashtable |
dirtyComponents
|
(package private) boolean |
doubleBufferingEnabled
|
private Dimension |
doubleBufferMaxSize
|
(package private) Vector |
invalidComponents
|
private static Object |
repaintManagerKey
|
(package private) RepaintManager.DoubleBufferInfo |
standardDoubleBuffer
|
(package private) Rectangle |
tmp
|
(package private) Hashtable |
tmpDirtyComponents
|
(package private) static int |
VOLATILE_LOOP_MAX
|
(package private) static boolean |
volatileImageBufferEnabled
|
private Map |
volatileMap
Maps from GraphicsConfiguration to VolatileImage. |
Constructor Summary | |
RepaintManager()
Create a new RepaintManager instance. |
Method Summary | |
private Image |
_getOffscreenBuffer(Component c,
int proposedWidth,
int proposedHeight)
|
void |
addDirtyRegion(JComponent c,
int x,
int y,
int w,
int h)
Add a component in the list of components that should be refreshed. |
void |
addInvalidComponent(JComponent invalidComponent)
Mark the component as in need of layout and queue a runnable for the event dispatching thread that will validate the components first isValidateRoot() ancestor. |
(package private) void |
collectDirtyComponents(Hashtable dirtyComponents,
JComponent dirtyComponent,
Vector roots)
|
static RepaintManager |
currentManager(Component c)
Return the RepaintManager for the calling thread given a Component. |
static RepaintManager |
currentManager(JComponent c)
Return the RepaintManager for the calling thread given a JComponent. |
Rectangle |
getDirtyRegion(JComponent aComponent)
Return the current dirty region for a component. |
Dimension |
getDoubleBufferMaximumSize()
Returns the maximum double buffer size. |
Image |
getOffscreenBuffer(Component c,
int proposedWidth,
int proposedHeight)
Return the offscreen buffer that should be used as a double buffer with the component c .
|
Image |
getVolatileOffscreenBuffer(Component c,
int proposedWidth,
int proposedHeight)
Return a volatile offscreen buffer that should be used as a double buffer with the specified component c .
|
boolean |
isCompletelyDirty(JComponent aComponent)
Convenience method that returns true if aComponent will be completely painted during the next paintDirtyRegions(). |
boolean |
isDoubleBufferingEnabled()
Returns true if this RepaintManager is double buffered. |
void |
markCompletelyClean(JComponent aComponent)
Mark a component completely clean. |
void |
markCompletelyDirty(JComponent aComponent)
Mark a component completely dirty. |
void |
paintDirtyRegions()
Paint all of the components that have been marked dirty. |
void |
removeInvalidComponent(JComponent component)
Remove a component from the list of invalid components. |
(package private) void |
resetDoubleBuffer()
This resets the double buffer. |
(package private) void |
resetVolatileDoubleBuffer(GraphicsConfiguration gc)
This resets the volatile double buffer. |
static void |
setCurrentManager(RepaintManager aRepaintManager)
Set the RepaintManager that should be used for the calling thread. |
void |
setDoubleBufferingEnabled(boolean aFlag)
Enables or disables double buffering in this RepaintManager. |
void |
setDoubleBufferMaximumSize(Dimension d)
Set the maximum double buffer size. |
String |
toString()
Returns a string that displays and identifies this object's properties. |
(package private) boolean |
useVolatileDoubleBuffer()
Returns true if we should use the Image returned
from getVolatileOffscreenBuffer to do double buffering. |
void |
validateInvalidComponents()
Validate all of the components that have been marked invalid. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
private Map volatileMap
Hashtable dirtyComponents
Hashtable tmpDirtyComponents
Vector invalidComponents
boolean doubleBufferingEnabled
private Dimension doubleBufferMaxSize
RepaintManager.DoubleBufferInfo standardDoubleBuffer
private static final Object repaintManagerKey
static boolean volatileImageBufferEnabled
static final int VOLATILE_LOOP_MAX
Rectangle tmp
Constructor Detail |
public RepaintManager()
Method Detail |
public static RepaintManager currentManager(Component c)
c
- a Component -- unused in the default implementation, but could
be used by an overridden version to return a different RepaintManager
depending on the Component
public static RepaintManager currentManager(JComponent c)
Note: This method exists for backward binary compatibility with earlier
versions of the Swing library. It simply returns the result returned by
currentManager(Component)
.
c
- a JComponent -- unused
public static void setCurrentManager(RepaintManager aRepaintManager)
aRepaintManager
- the RepaintManager object to usepublic void addInvalidComponent(JComponent invalidComponent)
JComponent.isValidateRoot()
,
removeInvalidComponent(javax.swing.JComponent)
public void removeInvalidComponent(JComponent component)
addInvalidComponent(javax.swing.JComponent)
public void addDirtyRegion(JComponent c, int x, int y, int w, int h)
JComponent.repaint(long, int, int, int, int)
public Rectangle getDirtyRegion(JComponent aComponent)
public void markCompletelyDirty(JComponent aComponent)
public void markCompletelyClean(JComponent aComponent)
public boolean isCompletelyDirty(JComponent aComponent)
public void validateInvalidComponents()
addInvalidComponent(javax.swing.JComponent)
public void paintDirtyRegions()
addDirtyRegion(javax.swing.JComponent, int, int, int, int)
void collectDirtyComponents(Hashtable dirtyComponents, JComponent dirtyComponent, Vector roots)
public String toString()
toString
in class Object
public Image getOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
c
.
By default there is a double buffer per RepaintManager.
The buffer might be smaller than (proposedWidth,proposedHeight)
This happens when the maximum double buffer size as been set for the receiving
repaint manager.
public Image getVolatileOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
c
.
The image returned will be an instance of VolatileImage, or null
if a VolatileImage object could not be instantiated.
This buffer might be smaller than (proposedWidth,proposedHeight)
.
This happens when the maximum double buffer size has been set for this
repaint manager.
VolatileImage
private Image _getOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
public void setDoubleBufferMaximumSize(Dimension d)
public Dimension getDoubleBufferMaximumSize()
public void setDoubleBufferingEnabled(boolean aFlag)
aFlag
- true to activate double bufferingisDoubleBufferingEnabled()
public boolean isDoubleBufferingEnabled()
false
to avoid unnecessary buffering in Swing.
On platforms where native double buffering is not supported,
the default value will be true
.
void resetDoubleBuffer()
void resetVolatileDoubleBuffer(GraphicsConfiguration gc)
boolean useVolatileDoubleBuffer()
Image
returned
from getVolatileOffscreenBuffer
to do double buffering.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |