2014-10-02 4 views
0

공이 새로운 색을 선택할 때 제어 할 타이머 클래스를 설정하려고합니다. 나는 공을 설정 시간에 색깔을 바꾸고 다른 색깔을 연속적으로 놓기 위하여 만들 필요가있다. 이것은 내 공 클래스이고 전체 프로그램은 시작 클래스를 통해 실행됩니다.랜덤 변수가 실행될 때 제어 할 타이머 설정

public void go() { 
    if (dx >= 0) { 
     dx = 20; 
    } 
} 

public void update(Start sp) { 
    if (x + dx > sp.getWidth() - radius * 2) { 
     x = sp.getWidth() - radius * 2; 
     dx = -dx; 
    } 
    else if (x + dx < 0) { 
     dx = -dx; 
    } 
    else { 
     x += dx; 
    } 
} 

public void paint(Graphics g) { 

    Random set = new Random(); 
    int num1; 
    num1 = set.nextInt(4); 

    if (num1 == 0) { 
     g.setColor(Color.blue); 
     g.fillOval(x, y, radius * 2, radius * 2); 
    } 
    if (num1 == 1) { 
     g.setColor(Color.green); 
     g.fillOval(x, y, radius * 2, radius * 2); 
    } 
    if (num1 == 2) { 
     g.setColor(Color.white); 
     g.fillOval(x, y, radius * 2, radius * 2); 
    } 
    if (num1 == 3) { 
     g.setColor(Color.magenta); 
     g.fillOval(x, y, radius * 2, radius * 2); 
    } 
} 
+1

무엇이 문제입니까? – Compass

+0

난 그냥 무작위 변수를 설정 기간에 실행할 수 있도록 타이머 클래스를 사용하는 방법을 설명하는 사람이 필요합니다. 나는 코드에 익숙하지 않아 나를 도울 수있는 다른 리소스를 찾을 수 없습니다. – Cameron

+0

[이] (http://stackoverflow.com/questions/4044726/how-to-set-a-timer-in-java)가 작동합니까? – Compass

답변

0

메서드 외부에서이 필드를 선언하십시오.

Timer timer = new Timer(); 

이 방법을 선언하십시오.

public void setTimerToChangeColors() { 
    timer.schedule(new TimerTask() { 
     @Override 
     public void run() { 
     // Whatever you want your ball to do to changes its colors 
     setTimerToChangeColors(); 
     } 
    }, 10*1000); // 10 seconds * 1000ms per second 
} 

setTimerToChangeColors를 한 번 호출하면됩니다. 10 초마다 다시 시작됩니다. 작업이 트리거 될 때 수행 할 작업에 대한 코드를 작성할 수 있습니다. 임의의 시간을 원한다면 임의의 생성기에 타이머가 예약 된 곳을 수정해야합니다 (10*1000).