2012-10-31 66 views
0

为此;我想要“连续”按钮开始rollthedice()和“停止”按钮来停止它,但是当我再次点击“连续”按钮时,我希望它再次开始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

你试过谷歌搜索... – Joel

+0

你能澄清一下你是什么意思的“点击连续按钮”?它是用户生成事件吗?你是怎样做的? – Arham

+0

它的JFrame图形用户界面与按钮“停止”和“连续”此代码是在actionPerformed – JRowan

回答

1

你缺少的是这种分配到ScheduledFuturenow

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

然后就可以调用now.cancel(true);

略低于声明动弹一流水平,即你可以将你的actionPerformed在我之上的ThOD。它在那之后很好地工作。

ScheduledThreadPoolExecutor scheduler = new ScheduledThreadPoolExecutor(1); 
ScheduledFuture<?> now = null; 
+0

好吧,我做到了这一点,我得到一个空指针异常,当我停止,它不停止rollthedice(),它应该是参数化 – JRowan

+0

@JRowan你可以粘贴整个代码。 –

+0

它就在那里,我只是一个试图进入实践的初学者 – JRowan

相关问题