




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java 倒计时【收藏】作者:Hapost-开心鬼 来源:BlogJava 发布时间:2009-04-16 09:50 阅读:123 次 原文链接 收藏 /blog/284821最近用java编写了一个倒计时的程序,贴出来与大家共享。先看看截图吧:1.开始打开程序时的界面2.设定好时间,点击“开始计时”时的界面3.定时时间到时的界面4.退出程序时的界面5.同时,本程序具有检测功能,对您的时间输入进行检测下面是源码:package dis_timer;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.Font;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.sql.Timestamp;import java.util.Calendar;import java.util.GregorianCalendar;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.UIManager;import javax.swing.UnsupportedLookAndFeelException;public class CountDown extends JFrame implements ActionListener private static final long serialVersionUID = -3439634693767815667L;/定 /义静态长整形常量 private JLabel startTime,pastTime,label1,label2,lyear,lmonth,lday,lhour,lmin,lsec; private JTextField year,month,day,hour,min,sec; private JButton ok; private String str; private int y,m,d,h,mi,s; private boolean runflag=true; public CountDown() super(倒计时牌); init(); this.setSize(450,150); Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); int h = (int) d.getHeight() / 3; int w = (int) d.getWidth() / 3; this.setLocation(w, h); this.setVisible(true); this.setResizable(false); this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) int exit=JOptionPane.showConfirmDialog(CountDown.this, 确定退出吗?, 退出, JOptionPane.OK_CANCEL_OPTION); if(exit=JOptionPane.OK_OPTION) System.exit(0); ); private void init() label1=new JLabel(现在距规定时间还有:); label2=new JLabel(); startTime=new JLabel(开始时间:); pastTime=new JLabel(已过时间:); JPanel north=new JPanel(); north.setLayout(new BorderLayout(); north.add(label1,BorderLayout.CENTER); north.add(startTime,BorderLayout.NORTH); this.add(north,BorderLayout.NORTH); this.add(label2,BorderLayout.CENTER); JPanel south=new JPanel(); south.setLayout(new BorderLayout(); JPanel south_center=new JPanel(); Calendar c=Calendar.getInstance(); year=new JTextField(c.get(Calendar.YEAR)+,6); month=new JTextField(c.get(Calendar.MONTH)+1+,4); day=new JTextField(c.get(Calendar.DAY_OF_MONTH)+,4); hour=new JTextField(c.get(Calendar.HOUR_OF_DAY)+,4); min=new JTextField(c.get(Calendar.MINUTE)+,4); sec=new JTextField(c.get(Calendar.SECOND)+,4); lyear=new JLabel(年); lmonth=new JLabel(月); lday=new JLabel(日); lhour=new JLabel(时); lmin=new JLabel(分); lsec=new JLabel(秒); ok=new JButton(开始计时); south_center.add(year); south_center.add(lyear); south_center.add(month); south_center.add(lmonth); south_center.add(day); south_center.add(lday); south_center.add(hour); south_center.add(lhour); south_center.add(min); south_center.add(lmin); south_center.add(sec); south_center.add(lsec); south_center.add(ok); south.add(south_center,BorderLayout.CENTER); south.add(pastTime,BorderLayout.NORTH); this.add(south,BorderLayout.SOUTH); ok.addActionListener(this); label1.setFont(new Font(宋体,Font.BOLD,20); label2.setFont(new Font(宋体,Font.BOLD,26); label1.setForeground(new Color(154,0,255); label2.setForeground(Color.RED); public synchronized void stopthread() runflag=false; public synchronized void startthread() runflag=true; public synchronized boolean getrunflag() return runflag; class MyThread extends Thread Calendar target=null; Calendar startTime=null; long targetInMill=0; long startInMill=0; private MyThread(int y,int m,int d,int h,int mi,int s) target=new GregorianCalendar(y,m-1,d,h,mi,s); startTime=Calendar.getInstance(); startInMill=startTime.getTimeInMillis(); targetInMill=target.getTimeInMillis(); public void run() while(runflag) runflag=true; Calendar today=new GregorianCalendar(); long todayInMill=today.getTimeInMillis(); long dd=targetInMill-todayInMill; long dis=dd/1000; long ms=(dd/100)%10; long mms=(dd/10)%10; String d; int day=(int) (dis/(3600*24); int hour=(int) (dis%(3600*24)/3600); int min=(int) (dis%3600/60); int sec=(int) (dis%60); if(day=10&day100) d= +day; else d=day+; String s=d+ 天 +intToString(hour)+ 小时 +intToString(min)+ 分 +intToString(sec)+ 秒+ms+ +mms; label2.setText(s); pastTime(); if(dd=0) ok.setText(重新开始); JOptionPane.showMessageDialog(CountDown.this, 时间到); break; try Thread.sleep(10); catch (InterruptedException e) e.printStackTrace(); private void pastTime() Calendar today=new GregorianCalendar(); long nowInMill=today.getTimeInMillis(); long dd=nowInMill-startInMill; long dis=dd/1000; long ms=(dd/100)%10; long mms=(dd/10)%10; String d; int day=(int) (dis/(3600*24); int hour=(int) (dis%(3600*24)/3600); int min=(int) (dis%3600/60); int sec=(int) (dis%60); if(day=10&day100) d= +day; else d=day+; String s=d+ 天 +intToString(hour)+ 小时 +intToString(min)+ 分 +intToString(sec)+ 秒+ms+ +mms; pastTime.setText(已过时间:+s); public String intToString(int i) if(i10) str=0+i; return str; else return i+; public void actionPerformed(ActionEvent e) String str=e.getActionCommand(); MyThread t=null; if(str.equals(开始计时) try this.startthread(); startTime.setText(开始时间:+new Timestamp(System.currentTimeMillis(); y=Integer.parseInt(year.getText(); m=Integer.parseInt(month.getText(); d=Integer.parseInt(day.getText(); h=Integer.parseInt(hour.getText(); mi=Integer.parseInt(min.getText(); s=Integer.parseInt(sec.getText(); year.setEditable(false); month.setEditable(false); day.setEditable(false); hour.setEditable(false); min.setEditable(false); sec.setEditable(false);/ ok.setEnabled(false); ok.setText(停止); t=new MyThread(y,m,d,h,mi,s); t.start(); catch (NumberFormatException e1) JOptionPane.s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 为奥运助力活动方案策划
- 北京大数据营销方案策划
- 医院单位团建活动策划方案
- 农村电影活动服务方案策划
- 新都建筑维修方案设计团队
- 药厂能源管理课件
- 季节班幼儿活动方案策划
- 老鸭粉丝汤创业计划书
- 心理咨询预算方案
- 寺庙建筑配色方案设计意图
- 公安机关人民警察执法资格(高级)考前点题卷一
- 人力资源管理SOP标准化流程手册
- 2025-2026学年人教鄂教版(2024)小学科学三年级上册(全册)教学设计(附目录P137)
- 2025-2030中国家政服务业社区化发展与本地化服务模式探讨
- 2025年翼状胬肉试题及答案
- 2025年暗挖隧道坍塌应急救援演练脚本(2篇)
- 2025年Q2起重机司机模拟考试题库(附答案)
- 道路绿化监理规划方案(3篇)
- 沥青混凝土供货方案及保障措施
- (高清版)T∕CES 243-2023 《构网型储能系统并网技术规范》
- 注册城乡规划师之城乡规划原理题库及答案(押题版)
评论
0/150
提交评论