1 package 甲; 2 3 import java.awt.Dimension; 4 import java.text.SimpleDateFormat; 5 import java.util.Calendar; 6 import java.util.Date; 7 import java.util.Timer; 8 import java.util.TimerTask; 9 import javax.swing.JFrame; 10 import javax.swing.JLabel; 11 import javax.swing.JPanel; 12 /** 13 * This class is a simple JFrame implementation(实现) to explain how to display time 14 * dynamically(动态的) on the JSwing-based interface. 15 */ 16 @SuppressWarnings("serial") 17 public class 一 extends JFrame { 18 /* 19 * Variables 20 */ 21 private JPanel timePanel; 22 private JLabel timeLabel; 23 private JLabel displayArea; 24 private String DEFAULT_TIME_FORMAT = "GYYYY年MM月dd日 EEE HH时mm分ss秒SSS"; 25 //G-公元 26 //YYYY-年份 27 //MM-月份 28 //dd-日期 29 //EEE-星期 30 //HH-小时 31 //mm-分钟 32 //ss-秒钟 33 //SSS-毫秒 34 private String time; 35 private int ONE_SECOND = 9;//9毫秒刷新一次 36 37 public 一() { 38 super("东八区");//标题栏文字 39 timePanel = new JPanel(); 40 timeLabel = new JLabel("北京时间"); 41 displayArea = new JLabel(); 42 43 configTimeArea(); 44 timePanel.add(timeLabel); 45 timePanel.add(displayArea); 46 this.add(timePanel); 47 this.setAlwaysOnTop(true); //窗口置顶 48 this.setResizable(false);//窗口大小固定 49 this.setDefaultCloseOperation(EXIT_ON_CLOSE);//可以单击X退出 50 this.setSize(new Dimension(300, 90));//窗口尺寸大小 51 this.setLocationRelativeTo(null);//窗口出现位置 52 this.setType(java.awt.Window.Type.UTILITY); //窗口在任务栏不显示 53 this.setUndecorated(false); //不显示标题栏 54 } 55 56 /** 57 * 这个方法创建 a timer task 每秒更新一次 the time 58 */ 59 private void configTimeArea() { 60 Timer tmr = new Timer(); 61 tmr.scheduleAtFixedRate(new JLabelTimerTask(), new Date(), ONE_SECOND); 62 } 63 64 /** 65 * Timer task 更新时间显示区 66 * 67 */ 68 protected class JLabelTimerTask extends TimerTask { 69 SimpleDateFormat dateFormatter = new SimpleDateFormat( 70 DEFAULT_TIME_FORMAT); 71 72 @Override 73 public void run() { 74 time = dateFormatter.format(Calendar.getInstance().getTime()); 75 displayArea.setText(time); 76 } 77 } 78 79 public static void main(String arg[]) { 80 一 timeFrame = new 一(); 81 timeFrame.setVisible(true); 82 } 83 }