public class RepaintManager extends Object
As of 1.6 RepaintManager
handles repaint requests
for Swing's top level components (JApplet
,
JWindow
, JFrame
and JDialog
).
Any calls to repaint
on one of these will call into the
appropriate addDirtyRegion
method.
Constructor and Description |
---|
RepaintManager()
Create a new RepaintManager instance.
|
Modifier and Type | Method and Description |
---|---|
void |
addDirtyRegion(Applet applet,
int x,
int y,
int w,
int h)
Adds
applet to the list of Component s that
need to be repainted. |
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 |
addDirtyRegion(Window window,
int x,
int y,
int w,
int h)
Adds
window to the list of Component s that
need to be repainted. |
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.
|
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.
|
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.
|
void |
validateInvalidComponents()
Validate all of the components that have been marked invalid.
|
public RepaintManager()
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 Componentpublic 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 -- unusedpublic static void setCurrentManager(RepaintManager aRepaintManager)
aRepaintManager
- the RepaintManager object to usepublic void addInvalidComponent(JComponent invalidComponent)
invalidComponent
- a componentJComponent.isValidateRoot()
,
removeInvalidComponent(javax.swing.JComponent)
public void removeInvalidComponent(JComponent component)
component
- a componentaddInvalidComponent(javax.swing.JComponent)
public void addDirtyRegion(JComponent c, int x, int y, int w, int h)
c
- Component to repaint, null results in nothing happening.x
- X coordinate of the region to repainty
- Y coordinate of the region to repaintw
- Width of the region to repainth
- Height of the region to repaintJComponent.repaint(long, int, int, int, int)
public void addDirtyRegion(Window window, int x, int y, int w, int h)
window
to the list of Component
s that
need to be repainted.window
- Window to repaint, null results in nothing happening.x
- X coordinate of the region to repainty
- Y coordinate of the region to repaintw
- Width of the region to repainth
- Height of the region to repaintJFrame.repaint(long, int, int, int, int)
,
JWindow.repaint(long, int, int, int, int)
,
JDialog.repaint(long, int, int, int, int)
public void addDirtyRegion(Applet applet, int x, int y, int w, int h)
applet
to the list of Component
s that
need to be repainted.applet
- Applet to repaint, null results in nothing happening.x
- X coordinate of the region to repainty
- Y coordinate of the region to repaintw
- Width of the region to repainth
- Height of the region to repaintJApplet.repaint(long, int, int, int, int)
public Rectangle getDirtyRegion(JComponent aComponent)
aComponent
- a componentpublic void markCompletelyDirty(JComponent aComponent)
aComponent
- a componentpublic void markCompletelyClean(JComponent aComponent)
aComponent
- a componentpublic boolean isCompletelyDirty(JComponent aComponent)
aComponent
- a componenttrue
if aComponent will be completely
painted during the next paintDirtyRegions().public void validateInvalidComponents()
public void paintDirtyRegions()
public String toString()
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.c
- the componentproposedWidth
- the width of the bufferproposedHeight
- the height of the bufferpublic 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.c
- the componentproposedWidth
- the width of the bufferproposedHeight
- the height of the bufferVolatileImage
public void setDoubleBufferMaximumSize(Dimension d)
d
- the dimensionpublic 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
. Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved.
DRAFT 9-internal+0-2016-01-26-133437.ivan.openjdk9onspinwait