评论

收藏

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

编程语言 编程语言 发布于:2021-09-18 12:37 | 阅读数:190 | 评论:0

这篇文章主要介绍了Java实现的动态数字时钟功能,结合实例形式分析了java显示北京、纽约、伦敦等世界时间的相关日期时间运算操作技巧,需要的朋友可以参考下
本文实例讲述了java实现的动态数字时钟功能。分享给大家供大家参考,具体如下:
构建:
1. clock继承 jframe 为运行页面
2. clocktext 测试类 创建 clock 对象
运行效果:
DSC0000.gif

具体实现:
一、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();
  }
}
希望本文所述对大家java程序设计有所帮助。
原文链接:https://blog.csdn.net/qq_43377749/article/details/85096893

关注下面的标签,发现更多相似文章