我有一种方法可以写出剩余的猜测数,并且我希望每次有人错过字母或单词时都可以重新绘制它,但是它一直在不断重新绘制自身,从而导致整个程序不断闪烁。

我的方法如下所示:

public void repaintWord(Graphics g){
    g.SetColor(Color.RED);
    g.drawString("You have " + getN() + " guesses left", 400, 50);
    repaint();
}


当getN()更改其值时,如何使其仅重绘一次?

最佳答案

存储getN()最后一次退出时的repaintWord()值,并与getN()进行比较
入口:

private int lastN = ??; /* Value for max guesses. */

public void repaintWord(Graphics g)
{
    if (lastN != getN())
    {
        lastN = getN();
        g.SetColor(Color.RED);
        g.drawString("You have " + lastN + " guesses left", 400, 50);
        repaint();
    }
}

10-04 20:36