Java界面编程实战(三)——时钟小程序

目标:

实现一个可以动态变化时间的时钟界面

目标图:

项目分析:

框架上绘制图案用paint函数,显示时间用Date类,修改时间格式用SimpleDateFormat类,动态显示时间用线程Runnable接口不停刷新面板。

代码实现:

import java.awt.*;
import java.text.SimpleDateFormat;
import javax.swing.*;
import java.util.*;
public class GetCurrentTime extends JFrame implements Runnable{
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		GetCurrentTime gct=new GetCurrentTime();	//创建当前类的对象
		new Thread(gct).start();		//把当前类的对象添加到线程中,并启动线程
	}
	GetCurrentTime()	//构造函数
	{
		this.setTitle("My project");
		this.setSize(500, 310);
		this.setLocation(200,200);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
	@Override
	public void paint(Graphics g)	//绘图函数
	{
		super.paint(g);
		g.setFont(new Font("华文新魏",Font.BOLD,24));	//设置字体样式
		g.drawString(alterTimeFormat(), 100, 150);		//画出当前时间
		
	}
	public String alterTimeFormat()		//改变时间样式函数
	{
		return new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date().getTime());
	}
	@Override
	public void run() {		//线程函数
		// TODO Auto-generated method stub
		while(true)
		{
			try {
				Thread.sleep(1000);		//休眠一秒
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			repaint();		//重绘框架
		}
	}
}

注意事项:

 

  1. 绘图函数中第一句:super.paint(g);一定要带,可以理解为是初始化,我开始忘了带,结果出问题了。
  2. 线程函数记得用while语句,不然构不成一直刷新。
  3. 改变时间样式函数中yyyy代表year,MM代表month,dd代表day,hh代表hour,mm代表min,ss代表second,不能随便起名字。

 

怎样使用Runnable和Thread实现多线程?点击打开链接

JavaGUI——绘图技术基础 点击打开链接

 

 

欢迎各位在评论区留言探讨

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狮子座的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值