倒计时程序 红太狼 2022-04-02 04:46 355阅读 0赞 倒计时程序的设计 /*对于一个数字倒计时的设计 * 问题描述:在日常工作中经常见到倒计时的设计,那么,如何设计倒计时呢? * 给出一个数字,每隔一秒减一,直到减成0为止,并且,数字应该在窗体中显示, * 或者是直接输出每一次减去的数字, * * 问题分析: 窗体的设计比较简单,倒计时的难点在于时间的设计,Java中常用的倒计时设计 * 有三种, * 一:设置时长的倒计时; * 二:设置时间戳的倒计时; * 三:使用java.util.Timer类实现的时间戳倒计时 * 在这个问题中,给定的数字的倒计时要求在每一秒给一个提醒,将数字减一,常见的方式有采用多线程或者Timer()类来实现, * 在本例中采用多线程来实现,后面会写的关于多线程的整个知识体系,故而采用多线程实现 * Timer()类作为常用类来了解。 * * 问题解决:设计一个窗体,定义一个文本框和按钮,文本框用来输入要处理的数字, * 点击按钮用来开始计时,然后定义一个label,用来显示当前的时间点,当时间减为0的时候, * 在控制板上说明已经减到零,倒计时的实现可以用多线程来设计, */ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.Timer; import java.util.TimerTask; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class tEST1 extends JFrame{ // 定义组件 private JLabel lblTime; private JTextField txtInput; private JButton btnEnter; // 构造方法 public tEST1(){ // 设置窗体的相关属性 super("TimerThread"); this.setSize(300,200); this.setLayout(null); this.setLocation(100,50); // 创建组件 this.lblTime = new JLabel("请输入倒计时时间"); this.lblTime.setBounds(30,20,200,30); this.txtInput = new JTextField(); this.txtInput.setBounds(30,70,100,30); this.btnEnter = new JButton("确定"); this.btnEnter.setBounds(150,70,70,30); // 给JTextField注册监听 this.txtInput.addKeyListener(new KeyListener(){ public void keyPressed(KeyEvent ke) { } public void keyReleased(KeyEvent ke) { } public void keyTyped(KeyEvent ke) { txtInput_KeyTyped(ke); } }); // 给JButton注册监听 this.btnEnter.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ btnEnter_ActionPerformed(ae); } }); // 将各组件添加到窗体上 add(lblTime); add(txtInput); add(btnEnter); // 显示窗体 this.setVisible(true); } // 输入时的事件处理,控制用户只能输入数字 public void txtInput_KeyTyped(KeyEvent ke){ if(ke.getKeyChar() < '0' || ke.getKeyChar() > '9'){ ke.setKeyChar('\0'); } } // 点击按钮时的事件处理 public void btnEnter_ActionPerformed(ActionEvent ae){ // 获得用户输入的倒计时时间 String strTime = this.txtInput.getText(); if(strTime.equals("")){ // 检测用户是否输入 this.lblTime.setText("您尚未输入,请输入!"); } else{ Integer time = Integer.parseInt(strTime); // 创建线程 TimeThread tt = new TimeThread(this.lblTime,time); tt.start(); // 创建Timer /* Timer timer = new Timer(); timer.schedule(new TimerTask(){ // 启动其他程序 public void run() { System.out.print("ok"); } }, time * 1000); } } */ } } // 启动窗体 public static void main(String[] args){ new tEST1(); } } // 时间线程类 class TimeThread extends Thread{ private JLabel lblTime; private int time; // 构造方法传入,显示事件的JLabel和倒计时的时间。 public TimeThread(JLabel lblTime, int time){ this.lblTime = lblTime; this.time = time; } // run方法 public void run(){ while(time > 0){ // 显示所剩时间 this.lblTime.setText("所剩时间:" + time); // 所剩时间减少 time--; try { this.sleep(1000);//每个一秒计时 } catch (InterruptedException e) { e.printStackTrace(); } } } } 运行结果为: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTc5MjE2Mg_size_16_color_FFFFFF_t_70] 倒计时中: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTc5MjE2Mg_size_16_color_FFFFFF_t_70 1] import java.util.Date; //利用循环和多线程设计的简单的倒计数功能程序 public class Demo { public static void main(String []args) { for (int i = 100 ; i >= 0 ; i --) { System.out.print(" "+i); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("结束"); } } 运行结果: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTc5MjE2Mg_size_16_color_FFFFFF_t_70 2] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTc5MjE2Mg_size_16_color_FFFFFF_t_70]: /images/20220402/2b7014b2924a44a487f7147e5cffc83c.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTc5MjE2Mg_size_16_color_FFFFFF_t_70 1]: /images/20220402/30258c6fc8d8424e8241cd13c8698d72.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTc5MjE2Mg_size_16_color_FFFFFF_t_70 2]: /images/20220402/5df6ed3be84945279ceed31823f1416b.png
相关 倒计时 js部分: export default function CalcTime(endtime) { var obj = {}; var 男娘i/ 2023年05月31日 06:38/ 0 赞/ 46 阅读
相关 js 天数倒计时 时间倒计时 export function getOverTimeDown(endDateStr: string, outValue?: { value: string }, fn àì夳堔傛蜴生んèń/ 2022年09月11日 12:10/ 0 赞/ 322 阅读
相关 小程序倒计时 直接调用函数,传入结束时间的时间戳即可 在页面直接输出以下值 countDownDay 天 countDownHour 时 countDownMinute 分 我不是女神ヾ/ 2022年09月05日 04:18/ 0 赞/ 223 阅读
相关 寒假小程序(倒计时 ) / Copyright (c) 2014,烟台大学计算机学院 ALL right reserved 文件名:倒计时 作者;童宇 怼烎@/ 2022年08月07日 03:39/ 0 赞/ 268 阅读
相关 倒计时 验证输入手机号 验证码倒计时 ![这里写图片描述][SouthEast]![这里写图片描述][SouthEast 1] \如上图所示 要实现验证码的倒计时的效果 不念不忘少年蓝@/ 2022年06月02日 10:12/ 0 赞/ 403 阅读
相关 倒计时程序 倒计时程序的设计 /对于一个数字倒计时的设计 问题描述:在日常工作中经常见到倒计时的设计,那么,如何设计倒计时呢? 给出一个数字,每隔一秒减一 红太狼/ 2022年04月02日 04:46/ 0 赞/ 356 阅读
相关 小程序倒计时,已知过期时间实现倒计时 话不多说,直接贴代码 / 页面的初始数据 / data: { pastDate:'2019-03-05 1 不念不忘少年蓝@/ 2022年03月12日 08:52/ 0 赞/ 357 阅读
相关 倒计时 js代码 var EndTime= new Date('2017/2/18 00:00:00'); //设置到期时间 var NowTime = ne - 日理万妓/ 2021年12月23日 08:41/ 0 赞/ 538 阅读
相关 倒计时-小程序版 倒计时原理很简单,自己原生做的话,十几行即可封装一个插件(小程序wepy版) 需求: 商品24小时内免费,相应的购买按钮应该也是免费style的, 实现: 后端返回商品的截 短命女/ 2021年12月11日 11:21/ 0 赞/ 374 阅读
还没有评论,来说两句吧...