java.lang.Object
javax.swing.RepaintManager
此类管理重绘请求,允许最小化重绘次数,例如通过将多个请求折叠为组件树成员的单个重绘。
从 1.6 开始,RepaintManager
处理 Swing 顶级组件(JApplet
、JWindow
、JFrame
和 JDialog
)的重绘请求。对其中之一的 repaint
的任何调用都将调用适当的 addDirtyRegion
方法。
- 自从:
- 1.2
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述void
addDirtyRegion
(Applet applet, int x, int y, int w, int h) 已弃用,将被删除:此 API 元素可能会在未来版本中删除。Applet API 已弃用。void
addDirtyRegion
(Window window, int x, int y, int w, int h) 将window
添加到需要重新绘制的Component
列表中。void
addDirtyRegion
(JComponent c, int x, int y, int w, int h) 在应该刷新的组件列表中添加一个组件。void
addInvalidComponent
(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
的双缓冲区。boolean
isCompletelyDirty
(JComponent aComponent) 返回 true 的便捷方法组件将在下一个 paintDirtyRegions() 期间被完全绘制。boolean
如果此 RepaintManager 是双缓冲的,则返回 true。void
markCompletelyClean
(JComponent aComponent) 将组件标记为完全清洁。void
markCompletelyDirty
(JComponent aComponent) 将组件标记为完全脏。void
油漆所有已标记为脏的组件。void
removeInvalidComponent
(JComponent component) 从无效组件列表中删除一个组件。static void
setCurrentManager
(RepaintManager aRepaintManager) 设置应该用于调用线程的 RepaintManager。void
setDoubleBufferingEnabled
(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
。- 返回:
- 如果此对象是双缓冲的,则为真
-