2012-08-16 2 views
1

얼마나 많은 추측을 남겼는지와 사람이 문자 나 단어를 그리울 때마다 다시 그리기를 원하지만 항상 계속 그 자체를 다시 그리며 전체 프로그램이 계속 깜박입니다.자바 변수가 변할 때만 다시 그리기를 원합니다

내 방법은 다음과 같습니다

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

는 어떻게 한 번만 다음 GetN은() 값을 변경하면 다시 칠하기 위해?

답변

5

스토어 repaintWord() 마지막으로 종료되고 입구에 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(); 
    } 
} 
멤버 변수로
+0

감사합니다. 오늘은 열차에서 그 생각을했습니다. – Shepard

2

스토어 lastGuessCount :

나쁜 추측 :

lastGuessCount--; 

그 때 u se :

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

고마워, 응, 그게 뭔가있는 것 같아. – Shepard