看板 java 關於我們 聯絡資訊
想請問一下 有沒有可能連續使用兩個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
TsaiCF:參考看看 java.util.concurrent.Executors 06/29 21:51
sbrhsieh:1st timer's callback 完事後主動 start 2nd timer 不行 06/29 22:16
sbrhsieh:嗎?moveListener stop time1 then start timer2. 06/29 22:20
jimmyoic:可以 只是這樣兩個Method會綁在一起 之後還有其他要修 06/29 22:24
cuteclare:沒有啥作不到的~只是不要拘泥於javax.swing.Timer的話 06/30 00:48
ktpt1412:在timer1 listener加timer1.stop();timer2.start();呢? 07/06 21:14
ktpt1412:這是小弟之前的寫法 不是很漂亮就是了 07/06 21:17
cowbaying:用thead sleep會不會簡單一點? 07/10 10:03