我找不到任何官方文档说Component.repaint从除了事件调度线程(EDT)之外的另一个线程调用是安全的.
是这样吗?我在哪里可以找到一些文档/代码?
它是线程安全的.在RepaintManager确保此类电话被放置在事件指派线程.
Swing
RepaintManager类的目的是最大化Swing包含层次结构上重绘处理的效率,并实现Swing的"重新验证"机制(后者将成为单独文章的主题).它通过拦截Swing组件上的所有重绘请求(因此它们不再由AWT处理)并在需要更新的内容上维护自己的状态(称为"脏区")来实现重绘机制.最后,它用于invokeLater()处理事件调度线程上的挂起请求,如"重新绘制处理"一节(选项B)中所述.对于大多数程序,RepaintManager可以被视为Swing内部系统的一部分,几乎可以忽略.但是,它的API为程序提供了更好地控制绘画某些方面的选项.