📜  java eclipse中工作时钟的代码 - Java(1)

📅  最后修改于: 2023-12-03 14:42:13.945000             🧑  作者: Mango

Java Eclipse中工作时钟的代码

以下是一个简单的Java Eclipse程序,用于创建工作时钟。

代码示例
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class WorkingClock extends JPanel implements Runnable {
    private static final long serialVersionUID = 1L;
    private Thread runner = null;
    private DateFormat formatter = new SimpleDateFormat("hh:mm:ss a");

    public WorkingClock() {
        setPreferredSize(new Dimension(150, 30));
        setBackground(Color.white);
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        String time = formatter.format(new Date());
        g.setFont(new Font("SansSerif", Font.BOLD, 12));
        g.setColor(Color.BLACK);
        g.drawString(time, 10, 20);
    }

    public void start() {
        if (runner == null) {
            runner = new Thread(this);
            runner.start();
        }
    }

    public void stop() {
        if (runner != null) {
            runner.interrupt();
            runner = null;
        }
    }

    @Override
    public void run() {
        while (runner == Thread.currentThread()) {
            try {
                repaint();
                Thread.sleep(1000);
            } catch (InterruptedException ie) {
                break;
            }
        }
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Working Clock");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        WorkingClock clock = new WorkingClock();
        frame.getContentPane().add(clock);

        frame.pack();
        frame.setVisible(true);

        clock.start();
    }
}
代码说明

该程序创建了一个名为Working Clock的JFrame窗口,并在其中添加了一个WorkingClock对象。WorkingClock对象是一个扩展JPanel的类,用来绘制当前的时间,它实现了Runnable接口,以便可以在新的线程中运行。

WorkingClock类具有下列方法:

  • 构造函数:设置偏好大小和背景颜色。
  • paintComponent方法:覆盖了JPanel的paintComponent方法,以便在面板上绘制当前时间的字符串。
  • start方法:将新线程创建为该对象调用的run方法的实例,并启动它。
  • stop方法:停止该程序的运行。
  • run方法:当该对象的运行程序被调用时,在while循环体中,它每隔一秒钟重新绘制时间字符串。

在主方法中,创建了一个新的JFrame对象,并创建了WorkingClock对象。通过工具箱,利用frame.getContentPane().add方法将WorkingClock对象添加到JFrame对象中。然后,在frame.pack和frame.setVisible方法调用之后,start方法被调用,以便开始程序的运行。程序将在WorkingClock对象的新线程中运行并绘制时钟。