zoukankan      html  css  js  c++  java
  • java实现时钟方法汇总

    import java.awt.Dimension;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Timer;
    import java.util.TimerTask;
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    //第一种比较推荐:
    public class TimeFrame extends JFrame
    {
     /*
     * Variables 
     */
     private JPanel timePanel;
     private JLabel timeLabel;
     private JLabel displayArea;
     private String DEFAULT_TIME_FORMAT = "HH:mm:ss";
     private String time;
     private int ONE_SECOND = 1000;
      
     public TimeFrame()
     {
     timePanel = new JPanel();
     timeLabel = new JLabel("CurrentTime: ");
     displayArea = new JLabel();
      
     configTimeArea();
      
     timePanel.add(timeLabel);
     timePanel.add(displayArea);
     this.add(timePanel);
     this.setDefaultCloseOperation(EXIT_ON_CLOSE);
     this.setSize(new Dimension(200,70));
     this.setLocationRelativeTo(null);
     }
      
     /**
     * This method creates a timer task to update the time per second
     */
     private void configTimeArea() {
     Timer tmr = new Timer();
     tmr.scheduleAtFixedRate(new JLabelTimerTask(),new Date(), ONE_SECOND);
     }
      
     /**
     * Timer task to update the time display area
     *
     */
     protected class JLabelTimerTask extends TimerTask{
     SimpleDateFormat dateFormatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT);
     @Override
     public void run() {
      time = dateFormatter.format(Calendar.getInstance().getTime());
      displayArea.setText(time);
     }
     }
      
     public static void main(String arg[])
     {
     TimeFrame timeFrame=new TimeFrame();
     timeFrame.setVisible(true); 
     } 
    }
    

      

    import java.awt.Dimension;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    //第二种 
    public class DTimeFrame2 extends JFrame implements Runnable{
    	 private JFrame frame;
    	 private JPanel timePanel;
    	 private JLabel timeLabel;
    	 private JLabel displayArea;
    	 private String DEFAULT_TIME_FORMAT = "HH:mm:ss";
    	 private int ONE_SECOND = 1000;
    	  
    	 public DTimeFrame2()
    	 {
    	 timePanel = new JPanel();
    	 timeLabel = new JLabel("CurrentTime: ");
    	 displayArea = new JLabel();
    	  
    	 timePanel.add(timeLabel);
    	 timePanel.add(displayArea);
    	 this.add(timePanel);
    	 this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    	 this.setSize(new Dimension(200,70));
    	 this.setLocationRelativeTo(null);
    	 }
    	 public void run()
    	 {
    	 while(true)
    	 {
    	  SimpleDateFormat dateFormatter = new SimpleDateFormat(DEFAULT_TIME_FORMAT);
    	  displayArea.setText(dateFormatter.format(
    	     Calendar.getInstance().getTime()));
    	  try
    	  {
    	  Thread.sleep(ONE_SECOND); 
    	  }
    	  catch(Exception e)
    	  {
    	  displayArea.setText("Error!!!");
    	  }
    	 } 
    	 } 
    	  
    	 public static void main(String arg[])
    	 {
    	 DTimeFrame2 df2=new DTimeFrame2();
    	 df2.setVisible(true);
    	  
    	 Thread thread1=new Thread(df2);
    	 thread1.start(); 
    	 } 
    	}
    

      

    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Locale;
    import java.util.TimeZone;
    import java.util.Timer;
    import java.util.TimerTask;
    
    import javax.swing.DefaultComboBoxModel;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    //第三种:多国时钟实现
    public class WorldTimeFrame extends JFrame
    {
     /**
     * 
     */
     private static final long serialVersionUID = 4782486524987801209L;
      
     private String time;
     private JPanel timePanel;
     private TimeZone timeZone;//时区
     private JComboBox zoneBox;
     private JLabel displayArea;
      
     private int ONE_SECOND = 1000;
     private String DEFAULT_FORMAT = "EEE d MMM, HH:mm:ss";
      
     public WorldTimeFrame()
     {
     zoneBox = new JComboBox();
     timePanel = new JPanel();
     displayArea = new JLabel();
     timeZone = TimeZone.getDefault();
      
     zoneBox.setModel(new DefaultComboBoxModel(TimeZone.getAvailableIDs()));
      
     zoneBox.addActionListener(new ActionListener(){
      @Override
      public void actionPerformed(ActionEvent e) {
      updateTimeZone(TimeZone.getTimeZone((String) zoneBox.getSelectedItem()));
      }
       
     });
      
     configTimeArea();
      
     timePanel.add(displayArea);
     this.setLayout(new BorderLayout());
     this.add(zoneBox, BorderLayout.NORTH);
     this.add(timePanel, BorderLayout.CENTER);
     this.setLocationRelativeTo(null);
     this.setDefaultCloseOperation(EXIT_ON_CLOSE);
     this.setVisible(true);
     pack();
     }
      
     /**
     * This method creates a timer task to update the time per second
     */
     private void configTimeArea() {
     Timer tmr = new Timer();
     tmr.scheduleAtFixedRate(new JLabelTimerTask(),new Date(), ONE_SECOND);
     }
      
     /**
     * Timer task to update the time display area
     *
     */
     public class JLabelTimerTask extends TimerTask{
     SimpleDateFormat dateFormatter = new SimpleDateFormat(DEFAULT_FORMAT, Locale.ENGLISH);
     @Override
     public void run() {
      dateFormatter.setTimeZone(timeZone);
      time = dateFormatter.format(Calendar.getInstance().getTime());
      displayArea.setText(time);
     }
     }
      
     /**
     * Update the timeZone
     * @param newZone
     */
     public void updateTimeZone(TimeZone newZone)
     {
     this.timeZone = newZone;
     }
      
     public static void main(String arg[])
     {
     new WorldTimeFrame();
     } 
    }
    

      

  • 相关阅读:
    排序算法(二)插入排序---直接插入排序
    Shazam 是如何听音辨曲的?
    Android 读取<meta-data>元素的数据
    Android <uses-featureandroid:name="string">详解
    Android AsyncTask的用法
    Android ViewPager使用详解
    Git 使用教程(4)—— Git 常用命令集合
    Git 使用教程(3)
    Git 使用教程(2)
    Git 使用教程
  • 原文地址:https://www.cnblogs.com/ipetergo/p/6862148.html
Copyright © 2011-2022 走看看