public class RepaintManager extends Object
由于1.6 RepaintManager
手柄重绘了Swing的顶层组件(请求JApplet
, JWindow
, JFrame
和JDialog
)。 对其中一个的任何电话repaint
将调用适当的addDirtyRegion
方法。
Constructor and Description |
---|
RepaintManager()
创建一个新的RepaintManager实例。
|
Modifier and Type | Method and Description |
---|---|
void |
addDirtyRegion(Applet applet, int x, int y, int w, int h)
添加
applet 到列表
Component s表示需要重新绘制。
|
void |
addDirtyRegion(JComponent c, int x, int y, int w, int h)
在要刷新的组件列表中添加一个组件。
|
void |
addDirtyRegion(Window window, int x, int y, int w, int h)
添加
window 到列表
Component s表示需要重新绘制。
|
void |
addInvalidComponent(JComponent invalidComponent)
将组件标记为需要布局,并为事件分派线程队列运行,该线程将首先验证组件isValidateRoot()祖先。
|
static RepaintManager |
currentManager(Component c)
返回给定组件的调用线程的RepaintManager。
|
static RepaintManager |
currentManager(JComponent c)
返回给指定JComponent的调用线程的RepaintManager。
|
Rectangle |
getDirtyRegion(JComponent aComponent)
返回组件当前的脏区域。
|
Dimension |
getDoubleBufferMaximumSize()
返回最大双缓冲区大小。
|
Image |
getOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
使用组件c返回应用作双缓冲区的屏幕外
c 。
|
Image |
getVolatileOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
返回应该被用作具有指定成分的双缓冲器挥发性离屏缓冲区
c 。
|
boolean |
isCompletelyDirty(JComponent aComponent)
如果
aComponent在下一个paintDirtyRegions()中将被完全绘制,则返回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()
验证已标记为无效的所有组件。
|
public RepaintManager()
public static RepaintManager currentManager(Component c)
c
- 默认实现中未使用的组件,但可以被覆盖版本使用,以根据组件返回不同的RepaintManager
public static RepaintManager currentManager(JComponent c)
注意:此方法存在与早期版本的Swing库的向后二进制兼容性。 它只是返回currentManager(Component)
返回的结果。
c
- 一个JComponent - 未使用
public static void setCurrentManager(RepaintManager aRepaintManager)
aRepaintManager
- 要使用的RepaintManager对象
public void addInvalidComponent(JComponent invalidComponent)
public void removeInvalidComponent(JComponent component)
public void addDirtyRegion(JComponent c, int x, int y, int w, int h)
c
- 要重新绘制的组件,null不会发生任何事情。
x
- 要重新绘制的区域的X坐标
y
- 重新绘制区域的Y坐标
w
- 要重新绘制的区域的宽度
h
- 重新绘制区域的高度
JComponent.repaint(long, int, int, int, int)
public void addDirtyRegion(Window window, int x, int y, int w, int h)
window
到列表
Component
s表示需要重新绘制。
window
- 要重绘的窗口,null无效。
x
- 要重新绘制的区域的X坐标
y
- 重新绘制区域的Y坐标
w
- 要重新绘制的区域的宽度
h
- 重新绘制区域的高度
JFrame.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
到列表
Component
s表示需要重新绘制。
applet
- Applet要重绘,null没有发生任何事情。
x
- 要重新绘制的区域的X坐标
y
- 重新绘制区域的Y坐标
w
- 要重新绘制的区域的宽度
h
- 重新绘制区域的高度
JApplet.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 Image getOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
c
作为双缓冲区的屏幕外c
。
默认情况下,每个RepaintManager都有一个双缓冲区。
缓冲区可能小于(proposedWidth,proposedHeight)
这是为接收重绘管理器设置的最大双缓冲区大小发生的。
public Image getVolatileOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
c
。
返回的图像将是VolatileImage的实例,如果无法实例化VolatileImage对象,则返回null。
此缓冲区可能小于(proposedWidth,proposedHeight)
。
当为此重新绘制管理器设置最大双缓冲区大小时,会发生这种情况。
VolatileImage
public void setDoubleBufferMaximumSize(Dimension d)
public Dimension getDoubleBufferMaximumSize()
public void setDoubleBufferingEnabled(boolean aFlag)
aFlag
- true激活双缓冲
isDoubleBufferingEnabled()
public boolean isDoubleBufferingEnabled()
false
,以避免Swing中不必要的缓冲。
在不支持原生双缓存的平台上,默认值为true
。