老师给我安排了个任务,大致上就是拿swing画一个界面,然后有1个文本域,里面显示时间,实现计时的秒表,点开始,时间从0计时,大致的功能就是实现一个类似百米赛跑计时的秒表,象00:00:00:00 (最后1位是毫秒精确到10毫秒)我已经实现了,但是发现了一个大问题
我的思路是设置变化的量到100,秒++,秒到60,分++,分到60小时++,
然后用一个线程启动这个sleep 10ms,在文本域重新写一次
最后我发现这个时间是不准的,大概正常1分钟,他走55秒左右。。因为运行代码还要耗时(可能还有其他因素)
后来我想到了swing下有个timer类,我就用那个类也是10ms,并且定义了一个监听器,最后发现比我用线程写的那个还要慢,大概1分钟要慢20秒!
怎么处理才能精确呢,起初我以为很简单,现在发现不是那么回事!