repaint(long maxdelay) = repaint() 是否有 maxdelay 的值?
Is there a value of maxdelay for which repaint(long maxdelay) = repaint()?
在 repaint(long maxDelay)
(来自 java.awt.Component
)中,maxDelay
指定在调用 update
之前可以经过的最大毫秒数。
plain repaint()
有这么大吗?如果它没有最大值,这是否意味着在调用 update() 之前可以经过任意长度的时间?如果它有最大值,它是多少?
参数maxDelay通常被忽略,在AWT和Swing中都是如此。
从JDK1.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);
}
在 repaint(long maxDelay)
(来自 java.awt.Component
)中,maxDelay
指定在调用 update
之前可以经过的最大毫秒数。
plain repaint()
有这么大吗?如果它没有最大值,这是否意味着在调用 update() 之前可以经过任意长度的时间?如果它有最大值,它是多少?
参数maxDelay通常被忽略,在AWT和Swing中都是如此。 从JDK1.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);
}