0

このため; 「連続」ボタンでrollthedice()を開始し、「停止」ボタンで停止したいのですが、「連続」ボタンをもう一度押すと、rollthedice()を再び開始したり、行ったり来たりしたいです

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);

}
4

1 に答える 1

1

あなたが欠けているのは、この割り当てですScheduledFuture now

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

その後、あなたは呼び出すことができますnow.cancel(true);

クラスレベルで宣言の下に移動するだけです。つまり、actionPerformedメソッドの上に移動できます。その後は正常に動作します。

ScheduledThreadPoolExecutor scheduler = new ScheduledThreadPoolExecutor(1);
ScheduledFuture<?> now = null;
于 2012-10-31T19:39:31.253 に答える