码迷,mamicode.com
首页 > 编程语言 > 详细

java实现时钟方法汇总

时间:2017-05-16 17:29:07      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:listener   eth   npe   vax   version   panel   logs   exception   upd   

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();
 } 
}

  

java实现时钟方法汇总

标签:listener   eth   npe   vax   version   panel   logs   exception   upd   

原文地址:http://www.cnblogs.com/ipetergo/p/6862148.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!