java代码时钟 java时钟程序代码( 三 )


{
athread.sleep(1000);
}
catch(InterruptedException e)
{
}
}
}
}
求用java语言设计一个动态时钟,每秒刷新一次package com.kaylves;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Clock {
public static void main(String[] args) throws InterruptedException {
JFrame f = new JFrame();
Timer timer = new Timer();
Thread th=new Thread(timer);
th.start();
JLabel time = new JLabel();
f.add(time);
f.setVisible(true);
f.pack();
while(true){
time.setText(timer.getCurrentTime());
}
}
}
class Timer implements Runnable {
private String currentTime;
public String getCurrentTime() {
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
currentTime = sdf.format(d);
return currentTime;
}
public void run() {
try {
Thread.sleep(1000);
getCurrentTime();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
完成给分
java如何在2048中实现时间java编写时钟程序_Java实现时钟小程序 原创
2021-02-17 00:47:37
无可就是九头鸟
码龄6年
关注
哎,好久没上博客园发东西了,上一次还是两个月前的五一写的一篇计算器博客,不过意外的是那个程序成了这学期的Java大作业,所以后来稍微改了一下那个程序就交了上去,这还是美滋滋 。然后五月中旬的时候写了一个2048小游戏,由于写完第二个版本第二天就生病了,休养了好几天才缓过来,最后嫌麻烦就没发园子里了,直接挂Github上了 。然后又忙着准备期末,期末玩休息了5天又开始数据库课程设计,用Java写了一个小系统,花了一个星期左右 , 写了差不多3500行了 。然后写完就放学了,放学的日子就感觉自己开始懒散了,静不下心来写东西 , 每天睡觉,看一些无聊的视频 。。。前几天算是缓过神来,找回了脑子,于是又开始想着在放弃Java之前再多写一点东西,于是花了两个下午写了一个时钟 , 感觉看着还行 。
-----------------------------------以下是正经话-----------------------------------
其实这个程序并不难 , 主要是用Java 2D画图,弄一个线程,每隔一秒,依照时针分针秒针各自的速度重新计算它们走过的角度(相对12点方向顺时针偏离的角度),利用这个角度算出它们各自端点的坐标,重绘一次表针,达到刷新的目的 , 最后时限走动的效果 , 思路很简单 , 清晰明了 。但是关键是这个画图呀,想着很容易,重写继承过来的JFrame里的paint函数就行,最后发现效果并不是期待的那样,而是一闪一闪的,于是去寻找原因 , 结果,尼玛,原来水这么深 , 一下子触到了知识盲区,什么repaint的实现细节,先调用update,再调用paint,update函数又是如何工作的,慢慢弄懂了它为什么会一闪一闪的原因,然后寻找解决办法,然后就看到了什么双缓冲原理,WTF!什么玩意呀,根本没听过,然后乖乖地去看那东西的实现原理,又看到有人建议不要去重写paint方法,说是会遇到诸多意想不到的问题,建议去重写paintComponent方法 , 可是书本上画图的例子都是重写paint方法呀,况且我也没听过paintComponent,无奈 , 又去看了一下paint的工作原理 , 原来它会调用paintComponent , 最后放弃了自己实现双缓冲,乖乖改用了paintComponent 。。。
其实我还遇到了几个脑残的问题,比如在画秒针时,直接把画时针的部分代码复制下来,最后忘了改掉走动的速度,结果运行时还在想秒针怎么走不动呢?原谅我是个逗逼,还有什么秒针逆时针走动,最后才发现算坐标时误把y轴正方向当成了向上,哎 。。。

推荐阅读