栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java实现的动态数字时钟功能示例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java实现的动态数字时钟功能示例

本文实例讲述了Java实现的动态数字时钟功能。分享给大家供大家参考,具体如下:

构建:

1. Clock继承 Jframe 为运行页面
2. 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();
    }
}

PS:这里再为大家推荐几款时间及日期相关工具供大家参考使用:

在线世界各地时间查询:
http://tools.jb51.net/zhuanhuanqi/worldtime

Unix时间戳(timestamp)转换工具:
http://tools.jb51.net/code/unixtime

在线日期/天数计算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi

更多关于java相关内容感兴趣的读者可查看本站专题:《java日期与时间操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/138779.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号