2012-08-16 57 views
1

我有写多少猜测有离开的方法,我希望它是每个人都错过的字母或文字时重新粉刷,但它一直重绘自己所有的时间和使整个程序不断闪烁。Java的我想重绘只有当变量改变

我的方法是这样的:

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

如何使它重绘只有一次,当getN()改变其价值?

回答

5

商店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(); 
    } 
} 
+0

谢谢,我今天在火车上有这个想法,但它只是蒸发! – Shepard 2012-08-16 21:54:06

2

商店lastGuessCount作为成员变量:

猜测:

lastGuessCount--; 

然后你se:

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

谢谢,是啊,它看起来像这样,工程=] – Shepard 2012-08-16 21:54:42