作者jimmyoic (jimmyoic)
看板java
标题[J2SE] 连续使用Timer
时间Sat Jun 29 21:07:56 2013
想请问一下
有没有可能连续使用两个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
1F:→ TsaiCF:参考看看 java.util.concurrent.Executors 06/29 21:51
2F:推 sbrhsieh:1st timer's callback 完事後主动 start 2nd timer 不行 06/29 22:16
3F:推 sbrhsieh:吗?moveListener stop time1 then start timer2. 06/29 22:20
4F:→ jimmyoic:可以 只是这样两个Method会绑在一起 之後还有其他要修 06/29 22:24
5F:推 cuteclare:没有啥作不到的~只是不要拘泥於javax.swing.Timer的话 06/30 00:48
6F:推 ktpt1412:在timer1 listener加timer1.stop();timer2.start();呢? 07/06 21:14
7F:→ ktpt1412:这是小弟之前的写法 不是很漂亮就是了 07/06 21:17
8F:推 cowbaying:用thead sleep会不会简单一点? 07/10 10:03