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

  

转载于:https://www.cnblogs.com/ipetergo/p/6862148.html

java实现时钟方法汇总相关推荐

  1. OpenCV3 Java 机器学习使用方法汇总

    原文链接:OpenCV3 Java 机器学习使用方法汇总  前言 按道理来说,C++版本的OpenCV训练的版本XML文件,在java中可以无缝使用.但要注意OpenCV本身的版本问题.从2.4 到3 ...

  2. java 时钟 算法分析_java实现时钟方法汇总

    import java.awt.Dimension; import java.text.SimpleDateFormat; import java.util.Calendar; import java ...

  3. Java操作Word方法汇总,并详细介绍最简单的方法!!吊打POI以及那些POI的封装库

    因为boss提了一个根据信息自动生成Word的需求,所以我就研究了一下这一方面的库 经过我的研究,一般常用的有以下几种方法: 1.直接freemaker渲染,就是把要加入的数据用${}包起来,然后wo ...

  4. java常量定义方法_Java常量定义方法汇总

    Java常量定义方法汇总 时间:2017-06-13     来源:华清远见JAVA学院 实际工作开发中,我们经常会使用到常量.那么Java常量如何定义呢?Java常量定义的规范是什么?定义Java常 ...

  5. Java中性能优化的35种方法汇总

    原文地址:http://www.jb51.net/article/102831.htm 前言 对程序员们来说,代码优化是一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于 ...

  6. java时间戳动态,Java实现时间动态显示方法汇总

    本文所述实例可以实现Java在界面上动态的显示时间.具体实现方法汇总如下: 1.方法一 用TimerTask: 利用java.util.Timer和java.util.TimerTask来做动态更新, ...

  7. java 字符串拼接_JAVA字符串拼接常见方法汇总

    字符串的拼接,常使用到的大概有4种方式: 1.直接使用"+"号 2.使用String的concat方法 3.使用StringBuilder的append方法 4.使用StringB ...

  8. java实现时钟表盘教程方法

    本文实例为大家分享了java实现时钟表盘的具体代码,供大家参考,具体内容如下 设计并实现一个模拟时钟功能的应用程序.程序中应显示时针.分针和秒针,并同时以数字形式显示当前时间. 实现结果: 源代码如下 ...

  9. Java面试题大汇总,2021年附答案解析

    最新常Java面试题大汇总(含答案解析)发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全汇总,希望对大家有帮助哈 本套Java面试题大全,全的不能再全,哈哈~ ...

最新文章

  1. 推荐一位二本毕业1年,上海买房的大佬,牛逼!
  2. 【OpenCV 4开发详解】图像卷积
  3. 如何运用组策略禁用U盘
  4. 申报成功后怎样修改_【小白教程】12月第3期《申报成功后,如何更正,快快收藏!》...
  5. 下拉列表 php,php数组生成html下拉列表的方法
  6. Spring【依赖注入】就是这么简单
  7. 5m 云服务器2核4g_阿里云服务器2核4gb
  8. 03018_监听器Listener
  9. word2007中如何隐藏工具栏
  10. 写一个简单的 django_post demo
  11. Delphi以GDI+制作桌面歌词效果
  12. 日平均血糖与糖化血红蛋白对照关系
  13. Axure高保真学校后台管理作品管理教师管理资源审核学生管理家长管理权限管理资源管理web端后台模板管理教师审核统计分析教育后台管理系统学校后台管理系统校园后台管理系统
  14. mysql下载了解压版怎么_Win10安装MySQL5.7版本 解压缩版方法
  15. Git 常用操作(一)
  16. html设置桌面背景win7,win7系统设置默认桌面背景的还原方案
  17. Office批量打印精灵4.2入门教程
  18. voip和rtc_VoIP语音通话研究【进阶篇(四):freeswitch+webrtc+sip.js的通话】
  19. iOS 音频本地和在线播放器
  20. 设计模式 策略模式(Strategy)介绍和使用

热门文章

  1. 假定某一个数据列表是一个班级的计算机课程,若需要利用形参直接访问实参,则应把形参变量说明为()参数。A.指针B.引用C.传值D.常值...
  2. php spider shell,ScrapyShell使用
  3. visual studio 2019 未能在命名空间“System.IO.Ports”中找到类型名“SerialPort”
  4. 2000年不算在21世纪
  5. linux如何运行多个硬盘,一个硬盘如何装两个Linux
  6. mysql学习笔记01-创建数据库
  7. 19 删除链表的倒数第N个
  8. C++派生类含有成员对象构造函数析构函数顺序
  9. HYSBZ - 1101——莫比乌斯反演
  10. 用C++实现单链表的创建、逆置和输出 的两种方法