当前位置: 首页 > 教程 > Java Swing >

案例-Swing实现时钟

精华
小牛编辑
140浏览
2023-03-14

1 案例-Swing实现时钟

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */

import javax.swing.*;
import java.awt.*;  
import java.text.*;  
import java.util.*;  
public class DigitalWatch implements Runnable{  
    JFrame f;
    Thread t=null;
    int hours=0, minutes=0, seconds=0;
    String timeString = "";
    JButton b;

    DigitalWatch(){
        f=new JFrame();
        f.setTitle("Swing实现时钟效果-小牛知识库网");

        t = new Thread(this);
            t.start();

        b=new JButton();
            b.setBounds(100,100,100,50);

        f.add(b);
        f.setSize(300,400);
        f.setLayout(null);
        f.setVisible(true);
    }
  
     public void run() {
          try {
             while (true) {

                Calendar cal = Calendar.getInstance();
                hours = cal.get( Calendar.HOUR_OF_DAY );
                if ( hours > 12 ) hours -= 12;
                minutes = cal.get( Calendar.MINUTE );
                seconds = cal.get( Calendar.SECOND );

                SimpleDateFormat formatter = new SimpleDateFormat("hh:mm:ss");
                Date date = cal.getTime();
                timeString = formatter.format( date );

                printTime();

                t.sleep( 1000 );  // interval given in milliseconds
             }
          }
          catch (Exception e) { }
     }
  
    public void printTime(){
    b.setText(timeString);
    }
  
    public static void main(String[] args) {
        new DigitalWatch();


    }
} 

输出结果为: