Java实现动态数字时钟

本文实例为大家分享了Java实现动态数字时钟的具体代码,供大家参考,具体内容如下

构建:

Clock继承 JFrame 为运行页面
ClockText 测试类 创建 Clock 对象

运行效果:

具体实现:

一、Clock类

  • 四个JPnal 三个放时间 最后一个放日期
  • 放时间的三个JPnal 分别加入 地点 时间 按钮
  • 最后一个按钮添加日期

具体实现如下:

public class Clock extends JFrame {
 private JPanel jPanelBeijing;
 private JPanel jPanelNewYork;
 private JPanel jPanelLondom;
 private JPanel jPanelDate;

 private boolean BeijingThreadFlag_IsStart = true;
 private boolean NewYorkThreadFlag_IsStart = true;
 private boolean LondonThreadFlag_IsStart = true;

 public Clock() {
 // TODO Auto-generated constructor stub
 jPanelBeijing = new JPanel();
 jPanelNewYork = new JPanel();
 jPanelLondom = new JPanel();
 jPanelDate = new JPanel();

 iniRelations();
 iniLayout();
 jFrameClick();

 setVisible(true);
 setSize(480, 225);
 setLocationRelativeTo(null);
 }

 private void iniLayout() {
 jPanelBeijing.setLayout(new GridLayout(3, 1));
 jPanelNewYork.setLayout(new GridLayout(3, 1));
 jPanelLondom.setLayout(new GridLayout(3, 1));
 }

 // 关系
 private void iniRelations() {
 this.add(BorderLayout.WEST, jPanelBeijing);
 this.add(BorderLayout.CENTER, jPanelNewYork);
 this.add(BorderLayout.EAST, jPanelLondom);
 this.add(BorderLayout.SOUTH, jPanelDate);
 Font placeFont = new Font("楷体", Font.BOLD, 36);
 JLabel jLabelBeijing = new JLabel("北京时间");
 jLabelBeijing.setFont(placeFont);
 jPanelBeijing.add(jLabelBeijing);
 setWestPanel();
 JLabel jLabelNewYork = new JLabel("纽约时间");
 jLabelNewYork.setFont(placeFont);
 jPanelNewYork.add(jLabelNewYork);
 setCenterPanel();
 JLabel jLabelLondon = new JLabel("伦敦时间");
 jLabelLondon.setFont(placeFont);
 jPanelLondom.add(jLabelLondon);
 setEastPanel();
 setDatePanel();
 }

 private void setWestPanel() {
 // add time for SouthPanel
 JLabel jLabelTime = new JLabel("加载中.");
 jLabelTime.setFont(new Font("宋体", Font.BOLD, 30));
 Timer timeAction = new Timer(1000, new ActionListener() {

  public void actionPerformed(ActionEvent e) {
  long timemillis = System.currentTimeMillis();
  // 转换日期显示格式
  SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss ");
  jLabelTime.setText(time.format(new Date(timemillis)));
  }
 });
 timeAction.start();
 jPanelBeijing.add(jLabelTime);

 Button button = new Button("北京暂停");
 button.addActionListener(new ActionListener() {

  @Override
  public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  if (BeijingThreadFlag_IsStart) {
   timeAction.stop();
   button.setLabel("北京继续");
   BeijingThreadFlag_IsStart = false;
  } else {
   timeAction.start();
   button.setLabel("北京暂停");
   BeijingThreadFlag_IsStart = true ;
  }
  }
 });
 jPanelBeijing.add(button);
 }

 private void setCenterPanel() {
 // add time for SouthPanel
 JLabel jLabelTime = new JLabel("加载中.");
 jLabelTime.setFont(new Font("宋体", Font.BOLD, 30));
 Timer timeAction = new Timer(1000, new ActionListener() {

  public void actionPerformed(ActionEvent e) {
  long timemillis = System.currentTimeMillis();
  // 转换日期显示格式
  SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss ");
  jLabelTime.setText(time.format(new Date(timemillis - 13 * 60 * 60 * 1000)));
  }
 });
 timeAction.start();
 jPanelNewYork.add(jLabelTime);

 Button button = new Button("纽约暂停");
 button.addActionListener(new ActionListener() {

  @Override
  public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  if (NewYorkThreadFlag_IsStart) {
   timeAction.stop();
   button.setLabel("纽约继续");
   NewYorkThreadFlag_IsStart = false;
  } else {
   timeAction.start();
   button.setLabel("纽约暂停");
   NewYorkThreadFlag_IsStart = true ;
  }
  }
 });
 jPanelNewYork.add(button);
 }

 private void setEastPanel() {
 // add time for SouthPanel
 // JLabel jLabelDate = new JLabel("Date");
 JLabel jLabelTime = new JLabel("加载中.");
 jLabelTime.setFont(new Font("宋体", Font.BOLD, 30));
 Timer timeAction = new Timer(1000, new ActionListener() {

  public void actionPerformed(ActionEvent e) {
  long timemillis = System.currentTimeMillis();
  // SimpleDateFormat date = new SimpleDateFormat("yyyy 年 MM 月 dd
  // 日 ");
  // jLabelDate.setText(" 当前日期: " + date.format(new
  // Date(timemillis)));
  SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss ");
  jLabelTime.setText(time.format(new Time(timemillis - 8 * 60 * 60 * 1000)));
  }
 });
 timeAction.start();
 jPanelLondom.add(jLabelTime);

 Button button = new Button("伦敦暂停");
 button.addActionListener(new ActionListener() {

  @Override
  public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  if (LondonThreadFlag_IsStart) {
   timeAction.stop();
   button.setLabel("伦敦继续");
   LondonThreadFlag_IsStart = false;
  } else {
   timeAction.start();
   button.setLabel("伦敦暂停");
   LondonThreadFlag_IsStart = true ;
  }
  }
 });
 jPanelLondom.add(button);
 // jPanelLondom.add(jLabelDate);
 }

 private void setDatePanel() {
 // add time for SouthPanel
 JLabel jLabelDate = new JLabel("加载中.");
 Timer timeAction = new Timer(1000, new ActionListener() {

  public void actionPerformed(ActionEvent e) {
  long timemillis = System.currentTimeMillis();
   SimpleDateFormat date = new SimpleDateFormat("yyyy 年 MM 月 dd 日 ");
   jLabelDate.setText(" 当前日期: " + date.format(new Date(timemillis)));
  }
 });
 timeAction.start();
 jPanelDate.add(jLabelDate);
 }

 private void jFrameClick(){
 setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//设置不默认关闭
 addWindowListener(new WindowListener() {

  @Override
  public void windowOpened(WindowEvent e) {
  // TODO Auto-generated method stub

  }

  @Override
  public void windowIconified(WindowEvent e) {
  // TODO Auto-generated method stub

  }

  @Override
  public void windowDeiconified(WindowEvent e) {
  // TODO Auto-generated method stub

  }

  @Override
  public void windowDeactivated(WindowEvent e) {
  // TODO Auto-generated method stub

  }

  @Override
  public void windowClosing(WindowEvent e) {
  // TODO Auto-generated method stub
  int x = JOptionPane.showConfirmDialog(null, "确认退出么?", "友情提示", JOptionPane.OK_CANCEL_OPTION,
   JOptionPane.WARNING_MESSAGE);
  if (x == 0) {
   System.exit(0);
  }
  }

  @Override
  public void windowClosed(WindowEvent e) {
  // TODO Auto-generated method stub
  }

  @Override
  public void windowActivated(WindowEvent e) {
  // TODO Auto-generated method stub

  }
 });
 }
}

二、创建ClockText类用于测试

public class ClockText{
 public static void main(String[] args) {
 new Clock();
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java实现液晶数字字体显示当前时间

    本文实例为大家分享了java实现液晶数字字体显示当前时间的具体代码,供大家参考,具体内容如下 import java.text.SimpleDateFormat; import java.util.Date; public class TestTime { public static String[][] num0 = new String[][] { { " ", "-", " " }, { "|", " &quo

  • Java编程小实例—数字时钟的实现代码示例

    本文的实例是Java编程实现一个数字时钟,代码测试可用,练练手吧.代码如下: package me.socketthread; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.util.Calendar; import java.util.GregorianCalenda

  • Java实现的动态数字时钟功能示例【显示世界时间】

    本文实例讲述了Java实现的动态数字时钟功能.分享给大家供大家参考,具体如下: 构建: 1. Clock继承 JFrame 为运行页面 2. ClockText 测试类 创建 Clock 对象 运行效果: 具体实现: 一.Clock类  四个JPnal 三个放时间 最后一个放日期 放时间的三个JPnal 分别加入 地点 时间 按钮 最后一个按钮添加日期 具体实现如下: public class Clock extends JFrame { private JPanel jPanelBeijing

  • Java实现的简单数字时钟功能示例

    本文实例讲述了Java实现的简单数字时钟功能.分享给大家供大家参考,具体如下: 应用名称:Java数字时钟 用到的知识:Java GUI编程,线程 开发环境:win8+eclipse+jdk1.8 功能说明:可以显示当前系统的年月日.星期以及准确时间,并实时更新显示. 效果图: 源代码: import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.BorderLayout; import javax.swing.JL

  • Java实现动态数字时钟

    本文实例为大家分享了Java实现动态数字时钟的具体代码,供大家参考,具体内容如下 构建: Clock继承 JFrame 为运行页面 ClockText 测试类 创建 Clock 对象 运行效果: 具体实现: 一.Clock类 四个JPnal 三个放时间 最后一个放日期 放时间的三个JPnal 分别加入 地点 时间 按钮 最后一个按钮添加日期 具体实现如下: public class Clock extends JFrame { private JPanel jPanelBeijing; priv

  • JavaScript实现动态数字时钟

    本文实例为大家分享了JavaScript实现动态数字时钟的具体代码,供大家参考,具体内容如下 实现效果 代码实现 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> * { padding: 0; margin: 0; } #box { width

  • C#实现动态数字时钟和日历

    本文实例为大家分享了C#实现动态数字时钟和日历的具体代码,供大家参考,具体内容如下 实现如下图所示的简易时钟和日历,要求显示公历日期.时间.星期.农历日期. 首先新建一个ChineseCanlendar类用于实现和农历相关的操作: [ChineseCanlendar.cs] /*  * 作者:JeronZhou  * 时间:2021-11-01  * 功能:动态数字时钟和日历  */ using System; using System.Linq; using System.Globalizat

  • Java实现动态模拟时钟

    本文实例为大家分享了java动态模拟时钟的具体代码,供大家参考,具体内容如下 应用名称:java动态模拟时钟 用到的知识:javaGUI,java 绘图 开发环境:win10+eclipse+jdk1.8 功能说明:通过java绘图画出一个虚拟的动态时钟 效果图: 源代码: import javax.swing.*; import java.awt.*; import java.util.*; import java.lang.Thread; import java.text.DecimalFo

  • javascript实现数字时钟特效

    本文实例为大家分享了javascript实现数字时钟特效的具体代码,供大家参考,具体内容如下 先看效果,动态数字时钟 用到了jQuery,但是只是用来获取元素,只有一点点 面向对象开发 看代码 HTML,自己引入jQuery和js,jQuery在前 <body> <div class="wrapper"> <div class="column"> <!-- 此div表示时的十位,只有0,1,2三个 --> <di

  • java实现动态时钟并设置闹钟功能

    本文实例为大家分享了java实现动态时钟设置闹钟功能,供大家参考,具体内容如下 显示如上图所示的动态时钟,并且可以设置闹钟,播放mp3. 首先用到的是时钟(Timer)和日历(Calendar)得到系统的当前时间. 代码如下: import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.io.Buffer

  • 如何使用JFrame完成动态模拟时钟

    这篇文章介绍了使用JFrame完成动态模拟时钟,在面板中绘制时钟并提取系统当前时刻,主方法中暂停线程1秒,刷新面板. 实现代码如下 import javax.swing.*; import java.awt.*; import java.util.*; import java.lang.Thread; import java.text.DecimalFormat; public class StillClock extends JPanel { /** * @param args */ priv

随机推荐