Java实现动态数字时钟

作者:_yuanhao 时间:2022-05-07 08:56:56 

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

构建:

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

运行效果:

Java实现动态数字时钟

具体实现:

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

来源:https://blog.csdn.net/qq_43377749/article/details/85096893

标签:java,时钟
0
投稿

猜你喜欢

  • Spring与Spring boot的区别介绍

    2022-02-12 08:55:07
  • Spring Boot 集成Mybatis实现主从(多数据源)分离方案示例

    2023-08-10 07:43:21
  • Android MTU 值修改的实例详解

    2021-09-20 02:27:07
  • C# 7.0中解构功能详解

    2022-08-11 21:06:34
  • C#中的枚举类型(Enum)介绍

    2023-06-23 18:20:06
  • java新特性之for循环最全的用法总结

    2022-07-08 22:14:51
  • Java如何实现自定义异常类

    2023-06-21 23:44:01
  • Java实现树形结构的示例代码

    2023-07-30 01:05:19
  • C#编程之事务用法

    2023-08-20 05:50:37
  • Android 使用SharePerference判断是否为第一次登陆的实现代码

    2021-07-31 18:51:32
  • 实例讲解Java 自旋锁

    2021-09-17 09:38:50
  • 使用java springboot设计实现的图书管理系统(建议收藏)

    2023-11-25 00:54:49
  • android自定义控件和自定义回调函数步骤示例

    2021-07-11 15:50:50
  • C# dynamic关键字的使用方法

    2023-02-26 08:40:01
  • B/S与C/S架构的区别介绍

    2023-07-02 13:24:33
  • Android EditText密码的隐藏和显示功能

    2021-11-17 16:49:47
  • Java 实现常见的非对称加密算法

    2023-11-27 18:51:03
  • Android ScrollView 下嵌套 ListView 或 GridView出现问题解决办法

    2023-03-31 07:17:04
  • springboot整合腾讯云短信开箱即用的示例代码

    2023-04-02 06:06:38
  • C#动态创建button的方法

    2023-02-11 15:58:26
  • asp之家 软件编程 m.aspxhome.com