2012-10-31 4 views
0

; 나는 "Continuous"버튼이 rollthedice()를 시작하고 "Stop"버튼을 눌러 멈추고 싶다. 그러나 "Continuous"버튼을 다시 누르면 다시 rollthedice()가 시작된다.ScheduleThreadPoolExecutor를 사용하기위한 적절한 구문을 보여줄 수 있습니까? 이 경우

scheduler = new ScheduledThreadPoolExecutor(1); 

ScheduledFuture now = null; 

Runnable runner = new Runnable(){ 
    public void run() 
    { 
     rollthedice(); 
    } 
}; 


if(e.getSource()==continuous) 
{ 

    now = scheduler.scheduleAtFixedRate(runner, 0, 500, TimeUnit.MILLISECONDS); 
} 
if(e.getSource()==stop) 
{ 

    now.cancel(true); 

} 
+1

Google 검색을 시도해 보셨습니까 ... – Joel

+0

"연속 버튼 누르기"란 무엇을 의미합니까? 사용자가 이벤트를 생성합니까? 어떻게 그걸합니까? – Arham

+0

"stop"과 "continuous"버튼이있는 JFrame GUI이 코드는 actionPerformed – JRowan

답변

1

은 당신이 누락 것은 그럼 당신은 당신이 당신의 actionPerformed 위에 이동할 수 즉, 그냥 클래스 레벨에서 선언 아래로 이동 now.cancel(true);

를 호출 할 수 있습니다 ScheduledFuturenow

now = scheduler.scheduleAtFixedRate(runner, 0, 500, 
       TimeUnit.MILLISECONDS); 

이 할당 나를 thod. 그 후 잘 작동합니다.

+0

에 들어 있습니다. 나는 그것을 멈추었을 때 null 포인터 예외를 얻었습니다. 멈추지 않으면 rollthedice()가 멈추지 않습니다. 매개 변수화 – JRowan

+0

@JRowan 전체 코드를 붙여 넣을 수 있습니까? –

+0

거기에, 그냥 연습에 들어가려고 초심자 메신저 – JRowan

관련 문제