2012-08-16 39 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