用java Swing 写的计时器

来源:互联网 发布:sql server 2012 64位 编辑:程序博客网 时间:2024/06/05 04:54

那天某好友问我java里怎么实现计时的功能,我当时第一反应是用线程,也是最简单的方法。后来百度了下,看了不少源码,也大都都是基于线程的写法,后来发现还有一种方法是用Timer类来实现的,初步看了下似乎更简单。然后百度到一篇发在blogjava的文章,原文地址:http://www.blogjava.net/zeyuphoenix/archive/2010/04/06/317589.html,里面的一位写了三四年Swing的zeyuphoenix大神,发表了一篇关于java计时器的文章,就是基于Timer类的。

这是zeyuphoenix大神写的计时器UI


大神将实现的关键的代码贴了出来,还认真讲解,然后我就照着他的方法写了一下,原本自信地以为会很简单,没想到当初学java的时候Swing没怎么好好学,老师当时也没怎么认真讲,然后就开始拙计了。

一开始把paintComponent(Graphics g)写成paintCompoment(Graphics g),结果死活不出来任何效果,话说我当时为啥没自动生成@Override paintComponent(Graphics g)方法的代码呢。然后修改了以后终于出来效果了。结果,界面超挫,因为zeyuphoenix大神并没有把绘制数字的坐标代码贴上来,结果只能自己模拟这些坐标,但是又发现大神的数字居然是斜的,蛋疼不已,只能网上找个类似的数字了,最后用了正七段数码图,在草稿本上捣鼓了下坐标,终于实现了类似的效果,不过和大神倾斜的数字相比,我这个逊好多。

这是我写的计时器UI:


总体的方法是效仿zeyuphoenix大神的,稍微改动的地方就是增加了SEC后的数字,将TIMER的执行时间间隔缩短到100ms。

大学很少会有突发的兴致,然后静下心去写自己想要做的东西,所以发篇blog纪念下,希望以后还有机会继续发表。

最后发张GIF图:


原创粉丝点击