[J2SE] 連續使用Timer

看板java作者 (jimmyoic)時間12年前 (2013/06/29 21:07), 編輯推噓5(503)
留言8則, 6人參與, 最新討論串1/1
想請問一下 有沒有可能連續使用兩個timer 但讓後者等待前者做完再開始呢? 比方說 timer = new Timer(swapSpeed,new moveListener(this, block)); timer.start(); 我讓timer 1 先做出movelistener裡的事 (listener裡在結束時call timer.stop()) 然後 timer = new Timer(5,new deleteListener(block,rowlocal,collocal)); timer.start(); 第二個timer在第一個timer做完以後才開始運作 然後簡單敘述一下會有這個需求 是因為要讓JPanel上面的圖片有移動的效果 需要讓圖片在固定夠長的間隔裡移動 然後不斷的refresh 不過我目前有兩個效果需要連續show出來 所以需要用到兩次timer 自己試了很久 想說讓main先檔住 在timer1 start以後 用一個while(timer.isRunning()) ; 擋在第二個timer前面 但是程式就會陷入無限迴圈 就是第一個timer call到stop()以後 迴圈判斷 timer.isRunning() 還是true 也試過丟一個flag 到listener裡面 如果工作執行完以後傳出來 也是失敗 自己還不是很熟timer跟同步這塊 想請教一下有沒有適當的方法可以解決這個問題 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 106.1.95.77

06/29 21:51, , 1F
參考看看 java.util.concurrent.Executors
06/29 21:51, 1F

06/29 22:16, , 2F
1st timer's callback 完事後主動 start 2nd timer 不行
06/29 22:16, 2F

06/29 22:20, , 3F
嗎?moveListener stop time1 then start timer2.
06/29 22:20, 3F

06/29 22:24, , 4F
可以 只是這樣兩個Method會綁在一起 之後還有其他要修
06/29 22:24, 4F

06/30 00:48, , 5F
沒有啥作不到的~只是不要拘泥於javax.swing.Timer的話
06/30 00:48, 5F

07/06 21:14, , 6F
在timer1 listener加timer1.stop();timer2.start();呢?
07/06 21:14, 6F

07/06 21:17, , 7F
這是小弟之前的寫法 不是很漂亮就是了
07/06 21:17, 7F

07/10 10:03, , 8F
用thead sleep會不會簡單一點?
07/10 10:03, 8F
文章代碼(AID): #1HpjmlMx (java)