在repaint(long maxDelay) (来自java.awt.Component)中,maxDelay指定在调用update之前可以经过的最大毫秒数。
普通的repaint()有这样的最大限制吗?如果它没有最大值,这是否意味着在调用update()之前可以经过任意长度的时间?如果它有一个最大值,它是什么?
发布于 2019-08-23 06:58:01
在AWT和Swing中,参数maxDelay通常都会被忽略。从JDK 1.8的源码来看:
AWT,参数tm未使用:
public void repaint(long tm, int x, int y, int width, int height) {
...
PaintEvent e = new PaintEvent(this, PaintEvent.UPDATE,
new Rectangle(x, y, width, height));
SunToolkit.postEvent(SunToolkit.targetToAppContext(this), e);
}
}Swing,参数tm未使用:
public void repaint(long tm, int x, int y, int width, int height) {
RepaintManager.currentManager(SunToolkit.targetToAppContext(this))
.addDirtyRegion(this, x, y, width, height);
}https://stackoverflow.com/questions/57617868
复制相似问题