我试图了解何时使用 revalidate/repaint/pack。
令人惊讶的是,我没有找到非常详细的幕后文档(请随意链接)。
到目前为止,我已经明白这是 RepaintManager 的全部责任。
- 油漆/重漆是指看起来很脏/干净的东西
- pack/validate/revalidate 指的是什么是有效的
这篇关于 Oracle的文章解释说,调用重绘会在 Event Dispatcher 线程上将一个作业排入队列,该线程又会在组件上调用 paintImmediately()(这会重绘组件)。
该轨迹表明有效与否与 LayoutManager 相关联。这完全是关于组件的大小而不是内容。
- 当您移动/调整组件大小并在更改其内容时重新绘制时,您是否应该调用 revalidate?
- pack() 方法真的是你不应该调用的不推荐使用的东西吗?
- 上述任何主张有错吗?