【发布时间】:2012-12-29 18:44:20
【问题描述】:
我试图了解何时使用 revalidate/repaint/pack。
令人惊讶的是,我没有找到非常详细的幕后文档(请随意链接)。
到目前为止,我已经明白这都是 RepaintManager 的责任。
- paint/repaint 指的是被视为脏/干净的东西
- pack/validate/revalidate 指的是什么是有效的
This article on Oracle 解释说,调用重绘会在 Event Dispatcher 线程上将作业排入队列,该线程将依次调用组件上的 paintImmediately()(这会重绘组件)。
This trail表示是否有效与LayoutManager相关联。这完全取决于组件的大小而不是内容。
- 当您移动/调整组件大小并在更改其内容时重新绘制时,您是否应该调用 revalidate?
- pack() 方法真的是一个你不应该调用的已弃用的东西吗?
- 上述任何说法是否有误?
【问题讨论】:
标签: java swing refresh repaint