Java实现动态数字时钟
作者:_yuanhao 时间:2022-05-07 08:56:56
本文实例为大家分享了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();
}
}
来源: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