Java我只想在变量更改时重新绘制

Java我只想在变量更改时重新绘制,java,swing,repaint,paintcomponent,Java,Swing,Repaint,Paintcomponent,我有一种方法,可以写下还有多少猜测,我希望每次有人漏掉字母或单词时都能重新绘制,但它一直在重新绘制自己,这会导致整个程序不断闪烁 我的方法如下所示: public void repaintWord(Graphics g){ g.SetColor(Color.RED); g.drawString("You have " + getN() + " guesses left", 400, 50); repaint(); } 当getN()更改其值时,如何使其仅重新绘制一次 在

我有一种方法,可以写下还有多少猜测,我希望每次有人漏掉字母或单词时都能重新绘制,但它一直在重新绘制自己,这会导致整个程序不断闪烁

我的方法如下所示:

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

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

在上次退出时存储
getN()
的值,并与上一次退出时的
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();
    }
}

在上次退出时存储
getN()
的值,并与上一次退出时的
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();
    }
}

lastGuessCount
存储为成员变量:

关于坏猜测:

然后使用:

if (getN() != lastGuessCount) {
    repaintWord(g);
}

lastGuessCount
存储为成员变量:

关于坏猜测:

然后使用:

if (getN() != lastGuessCount) {
    repaintWord(g);
}

谢谢,我今天在火车上就有这个想法,但它就这样消失了!谢谢,我今天在火车上就有这个想法,但它就这样消失了!