苍白的笑〃

回答时间:2019-12-05

向TA提问

package com.nokia;

import java.awt.BorderLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Arrays;

//import java.awt.event.ActionListener;

import java.util.Calendar;

import java.util.Date;

import java.util.Timer;

import java.util.TimerTask;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

//Graduate time from java school: 2010-8-19

public class CountDown extends JFrame{

private long longTime;

private long currentTime;

private long distTime;

private long day, hour, minutes, seconds;

private JTextField t_eventname;

private JTextField t_eventtime;

private JButton ok;

private JPanel mainframe;

private GridLayout grid;

private BorderLayout border;

private JLabel jl;

private ActionListener actionlistener;

private String eventname;

private Calendar cal;

public CountDown(){

this("CountDown Timer");

}

public CountDown(String frameName) {

super(frameName);

initial();

setSize(400, 200);

//this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocationByPlatform(true);

this.setVisible(true);

this.requestFocus();

//CDown();

}

private void initial() {

createComponent();

layOut();

listener();

}

private void createComponent() {

cal = Calendar.getInstance();

t_eventname = new JTextField();

t_eventtime = new JTextField();

mainframe = new JPanel();

border = new BorderLayout();

grid = new GridLayout(4, 1);

ok = new JButton("OK");

jl = new JLabel();

}

private void layOut() {

this.getContentPane().add(mainframe);

mainframe.setLayout(grid);

mainframe.add(t_eventname);

mainframe.add(t_eventtime);

mainframe.add(ok);

mainframe.add(jl);

}

private void listener() {

actionlistener = new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

eventname = t_eventname.getText();

String eventtime = t_eventtime.getText();

if (eventname.equals("")){

JOptionPane.showMessageDialog(mainframe, "please input the Event name");

return;

}

if (eventtime.equals("")){

JOptionPane.showMessageDialog(mainframe, "please input the Event Time");

return;

}

if (!eventtime.matches("\\d{4}/\\d{2}/\\d{2}/\\d{2}:\\d{2}:\\d{2}")){

JOptionPane.showMessageDialog(mainframe, "please input the right format Time like 1989/04/09/09:22:34");

/*here you should judge if the time is the right time, such as not 1989/23/34 ...

* after that, you should be sure here the time is in the future! good luck

* */

return;

}

String [] temp = eventtime.split("/|:");

//System.out.println(Arrays.toString(temp));

cal.set(Integer.valueOf(temp[0]), Integer.valueOf(temp[1]),

Integer.valueOf(temp[2]), Integer.valueOf(temp[3]),

Integer.valueOf(temp[4]), Integer.valueOf(temp[5]));

CDown();

}

};

ok.addActionListener(actionlistener);

}

public void CDown() {

Timer timer = new Timer();

//JFrame jf = new JFrame();

//jf.add(jl);

//jf.setVisible(true);

//jf.setSize(400, 150);

//jf.getDefaultCloseOperation();

timer.schedule(new TimerTask() {

@Override

public void run() {

// 返回历元到指定时间的毫秒数。

longTime = cal.getTimeInMillis();

// 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

currentTime = new Date().getTime();

distTime = longTime - currentTime;

day = ((distTime / 1000) / (3600 * 24));

hour = ((distTime / 1000) - day * 86400) / 3600;

minutes = ((distTime / 1000) - day * 86400 - hour * 3600) / 60;

seconds = (distTime / 1000) - day * 86400 - hour * 3600

- minutes * 60;

jl.setText(eventname + day + " 天 " + hour + "小时 :" + minutes

+ "分钟 :" + seconds + "秒");

}

}, 0, 1000);

}

public static void main(String[] args) {

new CountDown("CountDown Timeer");

}

}

收起

阅读全文

java编写个倒计时_怎么编写一个倒计时java程序?求具体步骤!相关推荐

  1. java写便签_如何编写一个便签程序(用Java语言编写)

    如何编写一个便签程序(用Java语言编写) 热度:336   发布时间:2011-02-18 11:44:16 如何编写一个便签程序(用Java语言编写) 因为以前没有好好学习Java,都搞忘了,请大 ...

  2. java代码解锁华为_如何编写可怕的Java代码?

    我决定告诉你如何编写可怕的Java代码.如果你厌倦了所有这些美丽的设计模式和最佳实践,并且想写些疯狂的东西,请继续阅读. 如果你正在寻找有关如何编写良好代码的建议,请查看其它文章! 对一切使用异常 你 ...

  3. java如何编写windows木马_如何编写可怕的 Java 代码?

    原标题:如何编写可怕的 Java 代码? 作者:武培轩 我决定告诉你如何编写可怕的Java代码.如果你厌倦了所有这些美丽的设计模式和最佳实践,并且想写些疯狂的东西,请继续阅读. 如果你正在寻找有关如何 ...

  4. 编写一个c语言程序 求e的值,编写一个程序求e的值_相关文章专题_写写帮文库

    时间:2019-05-15 01:58:18 作者:admin 3.2 代数式的值 做课人 尹圣军 [教学目标] 知识与技能 能解释代数式值的实际意义,了解代数式值的概念. 过程与方法 经历观察.实验 ...

  5. java如何添加进程_如何创建一个进程,如何进程调用进程

    java一般用线程就够了,多进程优势在于每个进程互不干扰,劣势在于太耗费内存,任何事情都不是绝对的,在编写Java程序时,有时候需要在Java程序中执行另外一个程序. 1.启动程序 Java提供了两种 ...

  6. java框架谁搭建_从零开始搭建一个开发框架(Java + Hibernate + Spring + Oracle)

    框架使用的系统技术以及数据库如下: 技术:Java/Hibernate/Hibernate Annotation/Spring 数据库:Oracle 10g 整个框架的搭建步骤大致分为以下三步: 1. ...

  7. html编写邮件发送_如何编写HTML电子邮件通讯

    html编写邮件发送 This article was first published in 2006, then updated in 2015. 本文于2006年首次发表,然后于2015年更新. ...

  8. java 进程 线程数量_如何查询一个进程下面的线程数(进程和线程区别)

    在平时工作中,经常会听到应用程序的进程和线程的概念,那么它们两个之间究竟有什么关系或不同呢? 一.对比进程和线程 1)两者概念 -  进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程 ...

  9. java护照号码校验_学无止境之小白学java……第001天

    学习主题:预科阶段 对应视频: http://www.itbaizhan.cn/course/id/18.html 对应作业: 1. 为什么需要学编程,什么样的人可以做程序员? 编程是现实逻辑的表达, ...

  10. java map 结构体_业务代码的救星——Java 对象转换框架 MapStruct 妙用

    简介 在业务项目的开发中,我们经常需要将 Java 对象进行转换,比如从将外部微服务得到的对象转换为本域的业务对象 domain object,将 domain object 转为数据持久层的 dat ...

最新文章

  1. 用keil怎么擦除_用这种方法销毁硬盘数据,即使美国中央情报局也难以恢复
  2. php 删除子字符串函数,PHP删除字符串中的任何字符函数
  3. Linux的项目中积累的实际工作技巧
  4. Android7.1的EDP屏替换
  5. 够用的 Python 写日志的知识——标准日志模块logging简介
  6. 多元函数概念思维导图_(重要!)高中数学概念品味+思维导图(全)-2020年1月13日更新 第16章(最后一章) 统计初步...
  7. oracle11g分区表维护,Oracle11g维护分区(一)AddingPartitions
  8. mysql root dengru_Mysql学习Mysql中文汉字转拼音的实现(每个汉字转换全拼)
  9. WGS-84与北京-54、西安-80及地方坐标系的转换
  10. 机器学习基石01:机器学习简介
  11. zemax准直透镜_基于ZEMAX的半导体激光器非球面准直透镜设计.PDF
  12. mysql decimal 18 2_sql语句 decimal(18,0)什么意思
  13. Ubuntu 解析迅雷链接
  14. redis-trib.rb找不到
  15. TCP/IP 第1章 概 述
  16. 典型周期性电信号的测量
  17. DataGrip for Mac破解步骤详解,期限到2099年
  18. 18336万!华为中标昌平区政务云2022年-2025年服务项目
  19. AI/计算机志愿填报指南发布!最受关注的终极八问,参考答案在此
  20. 基于python的图书信息管理系统

热门文章

  1. 【图像跟踪】基于matlab GUI均值漂移图像跟踪【含Matlab源码 743期】
  2. 【图像去噪】基于matlab维纳滤波图像去噪【含Matlab源码 725期】
  3. 【图像处理】基于matlab GUI图像直方图+滤波+小波变换+分割处理系统【含Matlab源码 608期】
  4. 【路径规划】基于matlab蚁群算法无人机巡检路径规划【含Matlab源码 138期】
  5. sql取逗号隔开的值_想学好Excel函数?你得先搞懂函数公式中逗号和星号的区别...
  6. 常州工学院计算机网络考试题库,用Winsock实现在线考试
  7. vivox6Android版本,vivo x6有几个版本?vivo x6各版本区别对比评测
  8. Python classmethod()
  9. abrt-hook-ccpp: Saved core dump of pid 12224导致dn挂掉问题
  10. C#中 JSON 序列化 与 反序列化