利用多线程实现电子时钟

 

import java.util.Calendar;
import java.util.GregorianCalendar;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class Clock {

 /**
  * @param args
  */
 public static void main(String[] args) {
  //布局电子时钟界面


  JFrame jf=new JFrame("Clock");
  JLabel jl=new JLabel("Clock");
  jl.setHorizontalAlignment(JLabel.CENTER);
  jf.add(jl,"Center");
  jf.setSize(200,150);
  jf.setLocation(400,200);
  jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  jf.setVisible(true);
  

//多线程开始
  Thread t = new MyThread(jl);
  t.start();
 }
}
 class MyThread extends Thread{
  private JLabel clock;
  public MyThread(JLabel clock){
   this.clock = clock;
  }
  public void run(){
   while(true){
    clock.setText(this.getTime());
    try {

     //休眠一秒钟
     Thread.sleep(1000);
    } catch (InterruptedException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
   }
  }
  private String getTime() {
   
   Calendar c = new GregorianCalendar();

   //获取日期
   String time = c.get(Calendar.YEAR) + "-" + (c.get(Calendar.MONTH)+1) + "-" +c.get(Calendar.DATE) + "   ";
   //获取时刻
   int hour = c.get(Calendar.HOUR_OF_DAY);
   int minute = c.get(Calendar.MINUTE);
   int second = c.get(Calendar.SECOND);
   //当时间不足10的时候,在个位数前加一个0,使时间整齐
   String ph = hour < 10 ? "0" : "";
   String pm = minute < 10 ? "0" : "";
   String ps = second < 10 ? "0" : "";
   
   time += ph + hour + ":" + pm + minute + ":" + ps + second;
   return time;
  }
 }


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值