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);
}