About"Timer" & "Calendar"

AboutTimer & Calendar这个星期做了一个简单的计时器,这个计时器可以获得当前的系统时间,并计时。?主要

About"Timer" & "Calendar"

这个星期做了一个简单的计时器,这个计时器可以获得当前的系统时间,并计时。

?

主要用到了java.util.Calendar 和 java.util.Timer 这两个类,这两个类非常实用,计时器这个程序也可以应用的很广,比如很多游戏需要计时(扫雷),测试也需要计时。

?

第一个类代码如下:

?

?

?

这个类中,对于我来说比较难想到的是 increment()这个方法,value = (value + 1) % limit; 能够很好的利用limit(区间)去判断时间是否需要进为0。

?

另外一个类:

?

?

这个类中运用了Calendar的对象rightNow来获得当前系统时间。

?

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

?

与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。CalendargetInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:

     Calendar rightNow = Calendar.getInstance();

?

?

还有最后一个gui的类:

?

?

与系统时间:About"Timer" & "Calendar"?是一致的。

?

但在初期,Start的actionPerformed()中如果不对time进行判断,会造成连续点击Start计时加速的问题,而且不能通过点击相同次数的Stop来停止。

?

利用JButton的setEnabled(boolean?b)来对Start,Stop的点击进行限制而避免此问题,或者:如我的代码中一样,通过if的判断来保证只有一个time在执行任务(这不是singleton)。

?

?