软件编程
位置:首页>> 软件编程>> java编程>> Java实现动态数字时钟

Java实现动态数字时钟

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

标签:java,时钟

本文实例为大家分享了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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com