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)
public void removeInvalidComponent(JComponent component)
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)
public void markCompletelyDirty(JComponent aComponent)
public void markCompletelyClean(JComponent aComponent)
public boolean isCompletelyDirty(JComponent aComponent)
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.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
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
. 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, 2024, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.