北京北大青鸟学术部:如何使用Java实现数字时钟

北京北大青鸟通州校区提供:

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

public class AccpClock extends JFrame implements Runnable {

 Thread clock;
 public AccpClock() {
  super("通州北大青鸟,java多线程数字时钟");
  //设置时钟标题
  setTitle("ACCP数字时钟");
  //设置时钟字体类型及大小
  this.setFont(new Font("Times New Roman", Font.BOLD, 60)); // 设置字体大小
  //自定义go方法,用于以后开启线程
  this.go();
  //设置时钟界面大小
  setBounds(400, 300, 280, 100);
  //设置时钟为可见
  this.setVisible(true);
 }

 public void go() {
  stop();
  if (clock == null) {
   // 线程执行的主题作为Thread类构造方法的参数。
   clock = new Thread(this);
   // 开启线程,实现run方法
   clock.start();
  }
 }

 public void run() {
  // 死循环,让时钟一直走
  while (true)
  {
   //repain()方法是来控制Graphics类的paint()方法的,repain()方法执行一次,即让paint()方法执行一次
   repaint();
   try {
    //参数是毫秒,1秒即1000毫秒
    Thread.sleep(1000);
   } catch (InterruptedException e) {
   }
  }
 }

 public void stop() {
  clock = null;
 }

 public void paint(Graphics g) {
  String s = "";
  //获取日历对象
  Calendar cale = Calendar.getInstance();
  //获取当前小时
  int hour = cale.get(Calendar.HOUR_OF_DAY) ;
  //获取当前分钟
  int minute = cale.get(Calendar.MINUTE);
  //获取当前秒数
  int second = cale.get(Calendar.SECOND);
  //格式化输出当前时间
  String now = String.format("%1$02d:%2$02d:%3$02d", hour,minute,second);
  //设置背景颜色为绿色
  g.setColor(Color.green);
  Dimension dim = getSize();
  g.fillRect(0, 0, dim.width, dim.height);
  g.setColor(Color.red);
  g.drawString(now, 20, 80);
 }
 //Main方法,运行时钟
 public static void main(String[] args) {
  AccpClock td = new AccpClock();
  //点击可见窗口右上角的按钮关闭
  td.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
}

北大青鸟网上报名
北大青鸟招生简章