用java Swing 写的计时器

那天某好友问我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图:


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值