java.lang.Object
javax.swing.RepaintManager
此类管理重绘请求,允许最小化重绘次数,例如通过将多个请求折叠为组件树成员的单个重绘。
从 1.6 开始,RepaintManager 处理 Swing 顶级组件(JApplet、JWindow、JFrame 和 JDialog)的重绘请求。对其中之一的 repaint 的任何调用都将调用适当的 addDirtyRegion 方法。
- 自从:
- 1.2
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述voidaddDirtyRegion(Applet applet, int x, int y, int w, int h) 已弃用,将被删除:此 API 元素可能会在未来版本中删除。Applet API 已弃用。voidaddDirtyRegion(Window window, int x, int y, int w, int h) 将window添加到需要重新绘制的Component列表中。voidaddDirtyRegion(JComponent c, int x, int y, int w, int h) 在应该刷新的组件列表中添加一个组件。voidaddInvalidComponent(JComponent invalidComponent) 将组件标记为需要布局,并为将首先验证组件的事件调度线程排队一个可运行的 isValidateRoot() 祖先。static RepaintManager为给定组件的调用线程返回 RepaintManager。static RepaintManager为给定 JComponent 的调用线程返回 RepaintManager。getDirtyRegion(JComponent aComponent) 返回组件的当前脏区。返回最大双缓冲区大小。getOffscreenBuffer(Component c, int proposedWidth, int proposedHeight) 返回应该用作组件c的双缓冲区的屏幕外缓冲区。getVolatileOffscreenBuffer(Component c, int proposedWidth, int proposedHeight) 返回一个易失性屏幕外缓冲区,该缓冲区应用作具有指定组件c的双缓冲区。booleanisCompletelyDirty(JComponent aComponent) 返回 true 的便捷方法组件将在下一个 paintDirtyRegions() 期间被完全绘制。boolean如果此 RepaintManager 是双缓冲的,则返回 true。voidmarkCompletelyClean(JComponent aComponent) 将组件标记为完全清洁。voidmarkCompletelyDirty(JComponent aComponent) 将组件标记为完全脏。void油漆所有已标记为脏的组件。voidremoveInvalidComponent(JComponent component) 从无效组件列表中删除一个组件。static voidsetCurrentManager(RepaintManager aRepaintManager) 设置应该用于调用线程的 RepaintManager。voidsetDoubleBufferingEnabled(boolean aFlag) 在此 RepaintManager 中启用或禁用双缓冲。void设置最大双缓冲区大小。toString()返回显示和标识此对象属性的字符串。void验证所有已标记为无效的组件。
-
构造方法详细信息
-
RepaintManager
public RepaintManager()创建一个新的 RepaintManager 实例。您很少调用此构造方法。直接地。要获取默认的 RepaintManager,请使用 RepaintManager.currentManager(JComponent)(通常为“this”)。
-
-
方法详情
-
currentManager
为给定组件的调用线程返回 RepaintManager。- 参数:
c- 一个组件——在默认实现中未使用,但可以被覆盖版本用于根据组件返回不同的 RepaintManager- 返回:
- RepaintManager 对象
-
currentManager
为给定 JComponent 的调用线程返回 RepaintManager。注意:此方法的存在是为了与 Swing 库的早期版本向后二进制兼容。它只是返回
currentManager(Component)返回的结果。- 参数:
c- 一个 JComponent -- 未使用- 返回:
- RepaintManager 对象
-
setCurrentManager
设置应该用于调用线程的 RepaintManager。重绘管理器将成为调用线程的线程组的当前 RepaintManager。- 参数:
aRepaintManager- 要使用的 RepaintManager 对象
-
addInvalidComponent
将组件标记为需要布局,并为将首先验证组件的事件调度线程排队一个可运行的 isValidateRoot() 祖先。- 参数:
invalidComponent- 一个组件- 参见:
-
removeInvalidComponent
从无效组件列表中删除一个组件。- 参数:
component- 一个组件- 参见:
-
addDirtyRegion
在应该刷新的组件列表中添加一个组件。如果c已经有一个脏区域,矩形(x,y,w,h)将与应该重绘的区域合并。- 参数:
c- 要重绘的组件,null 不会导致任何事情发生。x- 重绘区域的 X 坐标y- 重绘区域的 Y 坐标w- 重绘区域的宽度h- 重绘区域的高度- 参见:
-
addDirtyRegion
将window添加到需要重新绘制的Component列表中。- 参数:
window- 要重绘的窗口,null 不会导致任何事情发生。x- 重绘区域的 X 坐标y- 重绘区域的 Y 坐标w- 重绘区域的宽度h- 重绘区域的高度- 自从:
- 1.6
- 参见:
-
addDirtyRegion
@Deprecated (since ="9", forRemoval =true) public void addDirtyRegion(Applet applet, int x, int y, int w, int h) 已弃用,将被删除:此 API 元素可能会在未来版本中删除。Applet API 已弃用。有关详细信息,请参阅 java.applet 包文档。将applet添加到需要重新绘制的Component列表中。- 参数:
applet- 要重绘的小程序,null 导致什么都没有发生。x- 重绘区域的 X 坐标y- 重绘区域的 Y 坐标w- 重绘区域的宽度h- 重绘区域的高度- 自从:
- 1.6
- 参见:
-
getDirtyRegion
返回组件的当前脏区。如果组件不脏,则返回一个空矩形。- 参数:
aComponent- 一个组件- 返回:
- 该区域
-
markCompletelyDirty
将组件标记为完全脏。组件将在下一次 paintDirtyRegions() 调用期间被完全绘制。- 参数:
aComponent- 一个组件
-
markCompletelyClean
将组件标记为完全清洁。组件在下一次 paintDirtyRegions() 调用期间不会被绘制。- 参数:
aComponent- 一个组件
-
isCompletelyDirty
返回 true 的便捷方法组件将在下一个 paintDirtyRegions() 期间被完全绘制。如果计算脏区对您的组件来说代价高昂,请使用此方法并在它返回 true 时避免计算脏区。- 参数:
aComponent- 一个组件- 返回:
true如果组件将在下一个 paintDirtyRegions() 期间被完全绘制。
-
validateInvalidComponents
public void validateInvalidComponents()验证所有已标记为无效的组件。- 参见:
-
paintDirtyRegions
public void paintDirtyRegions()油漆所有已标记为脏的组件。- 参见:
-
toString
返回显示和标识此对象属性的字符串。 -
getOffscreenBuffer
返回应该用作组件c的双缓冲区的屏幕外缓冲区。默认情况下,每个 RepaintManager 有一个双缓冲区。缓冲区可能小于(proposedWidth,proposedHeight)当为接收重绘管理器设置了最大双缓冲区大小时会发生这种情况。- 参数:
c- 组件proposedWidth- 缓冲区的宽度proposedHeight- 缓冲区的高度- 返回:
- 图片
-
getVolatileOffscreenBuffer
返回一个易失性屏幕外缓冲区,该缓冲区应用作具有指定组件c的双缓冲区。返回的图像将是 VolatileImage 的实例,如果无法实例化 VolatileImage 对象,则返回 null。此缓冲区可能小于(proposedWidth,proposedHeight)。当为此重绘管理器设置了最大双缓冲区大小时,就会发生这种情况。- 参数:
c- 组件proposedWidth- 缓冲区的宽度proposedHeight- 缓冲区的高度- 返回:
- 易变的形象
- 自从:
- 1.4
- 参见:
-
setDoubleBufferMaximumSize
设置最大双缓冲区大小。- 参数:
d- 维度
-
getDoubleBufferMaximumSize
返回最大双缓冲区大小。- 返回:
- 表示最大尺寸的 Dimension 对象
-
setDoubleBufferingEnabled
public void setDoubleBufferingEnabled(boolean aFlag) 在此 RepaintManager 中启用或禁用双缓冲。注意:此属性的默认值是为给定平台上的最佳绘制性能而设置的,不建议程序直接修改此属性。- 参数:
aFlag- true 激活双缓冲- 参见:
-
isDoubleBufferingEnabled
public boolean isDoubleBufferingEnabled()如果此 RepaintManager 是双缓冲的,则返回 true。此属性的默认值可能因平台而异。在 AWT 支持本机双缓冲的平台上,默认值将为false以避免 Swing 中不必要的缓冲。在不支持本机双缓冲的平台上,默认值为true。- 返回:
- 如果此对象是双缓冲的,则为真
-