import java.awt.*;
import java.util.*;
import javax.swing.*;
 
//数字时钟
 
/*dkplus专业搜集和编写实用电脑软件教程,
*搜集各种软件资源和计算机周边,独立制作视频和ppt和音频微信公众号,
*点击进入 dkplus官方博客 (java网络编程http://dkplus.),
*微信搜索dkplus关注公众号可获取海量计算机周边资源。*/
 
public class ClockDemo extends JFrame implements Runnable{
    Thread clock;   
     
    public ClockDemo(){
        super("数字时钟");  //调用父类构造函数  
        setFont(new Font("Times New Roman",Font.BOLD,60));  //设置时钟的显示字体
        start(); //开始进程
        setSize(280,100);  //设置窗口尺寸
        setVisible(true);  //窗口可视
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //关闭窗口时退出程序
    }
     
    public void start(){ //开始进程
        if (clock==null){ //如果进程为空值
            clock=new Thread(this); //实例化进程
            clock.start(); //开始进程
        }
    }
     
    public void run(){  //运行进程
        while (clock!=null){ 
            repaint(); //调用paint方法重绘界面
            try{
                Thread.sleep(1000);  //线程暂停一秒(1000毫秒)
            }
            catch (InterruptedException ex){
                ex.printStackTrace();  //输出出错信息
            }
        }   
    }
     
    public void stop(){  //停止进程
        clock=null;
    }
     
    public void paint(Graphics g){  //重载组件的paint方法
        Graphics2D g2=(Graphics2D)g;  //得到Graphics2D对象
        Calendar now=new GregorianCalendar(); //实例化日历对象
        String timeInfo=""; //输出信息
        int hour=now.get(Calendar.HOUR_OF_DAY); //得到小时数
        int minute=now.get(Calendar.MINUTE);   //得到分数
        int second=now.get(Calendar.SECOND);  //得到秒数
         
        if (hour<=9) 
            timeInfo+="0"+hour+":"; //格式化输出
        else
            timeInfo+=hour+":";
        if (minute<=9)
            timeInfo+="0"+minute+":";
        else
            timeInfo+=minute+":";
        if (second<=9)
            timeInfo+="0"+second;
        else
            timeInfo+=second;
 
        g.setColor(Color.white);  //设置当前颜色为白色
        Dimension dim=getSize();  //得到窗口尺寸
        g.fillRect(0,0,dim.width,dim.height);  //填充背景色为白色
        g.setColor(Color.orange);  //设置当前颜色为橙色
        g.drawString(timeInfo,20,80);  //显示时间字符串
    }
 
    public static void main(String[] args){
        new ClockDemo();
    }
}