2014-03-03 4 views
0

이 예제에서는 주사위를 만들려고합니다. 이렇게하려면 updateVal 메서드에서 my paint 메서드로 1에서 6 사이의 무작위 값을 전달하고 싶지만 매개 변수를 paint 메서드에 전달하는 방법을 모르겠습니다.Java 그래픽 : 페인트 메서드에 매개 변수 전달

현재 매개 변수를 전달할 수없는 repaint 메서드를 사용하고 있습니다.

public void updateVal(int i){ 
    repaint(); 
} 

public void paint(Graphics g, int rollValue){ 
    super.paint(g); 

    int value = rollValue; 
    switch (value) { 
     case 1: g.fillOval(200, 200, 100, 100); 
       break; 
     case 2: g.fillOval(350, 50, 100, 100); 
       g.fillOval(50, 450, 100, 100); 
       break; 
     case 3: g.fillOval(350, 50, 100, 100); 
       g.fillOval(200, 250, 100, 100); 
       g.fillOval(50, 450, 100, 100); 
       break; 
     case 4: g.fillOval(350, 50, 100, 100); 
       g.fillOval(50, 350, 100, 100); 
       g.fillOval(50, 50, 100, 100); 
       g.fillOval(350, 350, 100, 100); 
       break; 
     case 5: g.fillOval(350, 50, 100, 100); 
       g.fillOval(50, 350, 100, 100); 
       g.fillOval(50, 50, 100, 100); 
       g.fillOval(350, 350, 100, 100); 
       g.fillOval(200, 200, 100, 100); 
     break; 
     case 6: g.fillOval(350, 50, 100, 100); 
       g.fillOval(50, 350, 100, 100); 
       g.fillOval(50, 50, 100, 100); 
       g.fillOval(350, 350, 100, 100); 
       g.fillOval(50, 200, 100, 100); 
       g.fillOval(350, 200, 100, 100); 
     break; 
    } 
} 

답변

2

그냥 사용중인 Canvas에 멤버 변수를 추가 세터를 작성하고 paint() 방법 호출하기 전에 설정 :

private int rollValue; 

public void setRollValue(int val) { this.rollValue = val; } 

public void paint(Graphics g) { 
    super.paint(g); 

    switch (rollValue) { 
    ... 
    } 
} 

public void updateVal(int i){ 
    setRollValue(i); 
    repaint(); 
}