使用线程实现电子时钟

实现效果

使用线程实现电子时钟_第1张图片

Clock.java

import javax.swing.*;
import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;

class Clock extends Canvas implements Runnable {
     

    // 序列化接口时显式声明 serialVersionUID
    // private static final long serialVersionUID = 1L;
    private JFrame frame = new JFrame();
    private JPanel panel = (JPanel) frame.getContentPane();

    // 构造
    public Clock() {
     

        panel.setLayout(new BorderLayout()); // 布局
        panel.setBackground(Color.white); // 背景色
        panel.add(this, BorderLayout.CENTER); // 居中
        new Thread(this).start();  //调用线程

        frame.setSize(300, 70);
        frame.setVisible(true); // 窗体可见
        frame.setLocationRelativeTo(null); // 屏幕居中
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // x关闭
    }

    // 线程
    public void run() {
     

        while (true) {
     
            try {
     
                Thread.sleep(1000); // 1秒睡眠
            } catch (InterruptedException e) {
     
                System.out.println("异常");
            }
            this.repaint(100);
        }

    }

    public void paint(Graphics g) {
     

        SimpleDateFormat SDF = new SimpleDateFormat("yyyy'年'MM'月'dd'日'HH:mm:ss");
        Calendar now = Calendar.getInstance(); // 获取可计算的时间

        String time = SDF.format(now.getTime());    // 获取日期时间
        // 字体设置
        g.setFont(new Font("宋体", Font.BOLD, 16));
        g.setColor(Color.BLACK);
        g.drawString(time, 45, 30);
    }

    public static void main(String args[]) {
     
        new Clock();
    }
}

参考文章来源脚本之家:https://www.jb51.net/article/75159.htm

你可能感兴趣的:(Java基础,java,多线程)