| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
編集の要約なし
==[[Java ScheduledExecutorService を利用してタイマーを実装]]==[[Java]{{category ] | [[Category:コード片}}]]
===Stopwatch.java===
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorServiceScheduledExecutorSer[[vi]]ce;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
// 15秒カウントしたら止める
if (chronometer.getPastSeconds() >>= 15) {
chronometer.stop();
}
*/
public static class Chronometer {
private ScheduledExecutorService ScheduledExecutorSer[[vi]]ce scheduler;
private long basetime;
private List<&lt;TickListener> &gt; listner; private ScheduledFuture<&lt;?> &gt; tickHandle;
public Chronometer() {
listner = new ArrayList<&lt;TickListener>&gt;();
scheduler = Executors.newScheduledThreadPool(1);
}
*/
public void start() {
final Runnable [[R]]unnable ticker = new Runnable[[R]]unnable() {
public void run() {
for (TickListener tl : listner) {
};
// 1秒ごとにイベントを発生
tickHandle = scheduler.scheduleAtFixedRatescheduleAtFixed[[R]]ate(ticker, 0, 1, TimeUnit.SECONDS);
}
/**
*/
public void stop() {
scheduler.schedule(new Runnable[[R]]unnable() {
public void run() {
tickHandle.cancel(true);

案内メニュー