repaint方法在此代码中如何工作?这不是无限循环吗?

时间:2019-04-07 17:37:02

标签: java paint repaint

基本上,下面的代码在屏幕上绘制带有菜单栏的背景。

public void paint(Graphics g) {
    screenImage = createImage(Main.SCREEN_WIDTH, Main.SCREEN_HEIGHT);
    screenGraphic = screenImage.getGraphics();
    draw(screenGraphic);
    g.drawImage(screenImage, 0, 0, null);
}

public void draw(Graphics g) {
    g.drawImage(introBackground, 0, 0, null);
    paintComponents(g); // 메뉴바는 이것으로 그려진다
    this.repaint();
}

但是,我不知道paint()方法如何到达其最后一条语句。 repaint()属于paint方法中一个名为draw()的方法。

我对repaint()所了解的是它调用了paint()方法。那么当draw()方法中的repaint()方法一致地调用paint方法时,代码如何从未到达paint()的最后一条语句?

它像无限递归方法一样工作吗?

感谢您的支持。

0 个答案:

没有答案