import java.util.Date;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.awt.Font;
import java.awt.BorderLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
/**
* TimerFrame - 倒计时窗口
* @author SageZk
* @version 1.0
*/
@SuppressWarnings("serial")
public class TimerFrame extends JFrame {
private long time = (long) (1.2 * 60 * 1000L); //倒计时时间(单位毫秒)
private JLabel lblTime;
private Thread runner;
public TimerFrame() {
super("TimerFrame");
this.lblTime = new JLabel("单击开始");
this.lblTime.setFont(new Font("Monospaced", Font.BOLD, 60));
this.lblTime.setHorizontalAlignment(SwingConstants.CENTER);
this.lblTime.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (runner != null) runner.start();
}
});
this.runner = new Thread(new Runnable() {
public void run() {
Date t = new Date();
StringWriter sw = new StringWriter();
StringBuffer sb = sw.getBuffer();
PrintWriter pw = new PrintWriter(sw);
long cur = 0L, end = System.currentTimeMillis() + time;
while ((cur = end - System.currentTimeMillis()) > 0) {
t.setTime(cur);
pw.format("%1$tM:%1$tS.%tL", t);
pw.flush();
lblTime.setText(sb.toString());
sb.setLength(0);
try {
Thread.sleep(6L);
} catch (InterruptedException e) {
}
}
lblTime.setText("00:00.000");
try {
Thread.sleep(1200L);
} catch (InterruptedException e) {
}
lblTime.setText("Bomb!!!");
}
});
this.runner.setDaemon(true);
getContentPane().add(this.lblTime, BorderLayout.CENTER);
setResizable(false);
setBounds(0, 0, 460, 330);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TimerFrame().setVisible(true);
}
}
/** 秒转换时分秒 **/ <script type="text/javascript" src="jquery-1.7.2.min.js"></script> <script type="text/javascript"> $(function () { Count_down($("#downTime"),getSpeicalT...
现状问题很明显倒计时器组件在一个活动列表页面里被使用,列表中每一项都是一个促销活动入口。倒计时器位于每个活动区块的左上方,提醒用户该活动还有多久结束,如下动图所示(测试设备 SONY E5663...
1 引言 使用倒计时,...JavaScript中的setInterval()函数可以作为定时器,每隔一段时间执行指定的事件,但是这种定时器由于运行环境的限制,一旦用户刷新页面或关闭页面再打开,倒计时器又会重新计时,另外,由于J...
开始的时候 我想到的时 我要在20秒 开始倒计时 然后1000一次减1 如果倒计时的多了的话, 那就会不准。不是实际的20秒 1,后来,我想,当前时间是时刻变化的 也是准确的, 然后我给定他在未来的某个时刻。 每次Te
我首先接触到的定时器就是根据线程的Thread.sleep()方法实现的,最开始学习java的时候,会用这个方法实现一些简单的动画效果,今天就来回顾一下当初的小动画! 1. 利用Thread.sleep();方法实现定时任务 首先 ...
在网上搜到的大家遇到的问题,大多数是因为,间隔时间设置为1000ms,但是回调的时候每次都要多出几毫秒或十几毫秒,而我的设备在实际测试中,多了40ms,即每倒计时25s,就会跳过一秒的显示。 首先我们要看一下...
时间 版本 说明 2019-2-27 v 1.0 初版发布 2019-3-2 v 2.0 对于第一版进行了大幅度更新,除了修改了一些小错误之外,还增加了一些内容。 2019-4-18 v3.0 修复错误,完善内容,增加了少部分内容。...
据甲骨文称 ,正在使用50亿张Java卡。 超过900万的开发人员选择用Java编写代码 ,它在开发人员中非常流行,同时也是最流行的开发平台。 对于即将到来的Java开发人员,此博客提供了一段时间内已学习的最佳实践的...
JDK API 包含的类库功能强大,经常使用的又:字符串操作,集合操作,文件操作,输入输出造成,网络操作,多线程等等。 2.JDK包结构 为了便于使用和维护,JDK类库按照包结构划分,不同功能的类划分在不同的包中; ...
不要让“锁”事成为烦心事线程池:业务代码最常用也最容易犯错的组件**不建议使用 Executors 提供的两种快捷的线程池**需要仔细斟酌线程池的混用策略,线程池的意义在于复用连接池:别让连接池帮了倒忙Jedis本身线程...
目 录 1.常见的集合有哪些?...7.为什么用solr和其他的区别在哪:https://blog.csdn.net/jokeylin/article/details/80562148 2 8.支付宝的支付流程: 2 9.数据库有几种索引: 3 10redis五种数据类型和应用场
java 8入门与实践 ... 据Oracle称 ,正在使用50亿张Java卡。 超过900万开发人员选择用Java编写代码,该代码在开发人员中非常流行,同时也是最流行的开发平台。 对于即将到来的Java开发人员,此博客提供了一...
1、 Java 基础知识 1.1 重载和重写的区别 重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。重写: 发生在父子类中,方法名、参数...
java程序运行机制:源文件(.java)→(编译器)→字节码文件(.class)→(解释器)→机器码 JDK JRE JVM JDK (包含JRE,以及增加编译器和调试器等用于程序开发的文件) JRE (Java虚拟机、库函数、运行Java应用程序...
重载和重写的区别 重载:同一个类里,方法名相同,return类型,参数列表可以不同 重写:主要发生在继承里,将父类的方法进行扩展。 ...String StringBuffer StringBuilder的区别是什么 ...String底层被final修饰,...
[x] 一、Java基础(语言、集合框架、OOP、设计模式等) [x] 二、Java高级(JavaEE、框架、服务器、工具等) [x] 三、多线程和并发 [x] 四、Java虚拟机 [x] 五、数据库(Sql、MySQL、Redis等) [x] 六、算法与数据结构 [x] ...
Java开发一轮复习 一、网络篇 1、OSI七层模型与TCP/IP 五层模型 OSI七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层 TCP/IP五层:物理层、数据链路层、网络层、传输层、应用层 2、常见...
## Java研发工程师知识点总结----------大纲----- [x] 一、Java基础(语言、集合框架、OOP、设计模式等)- [x] 二、Java高级(JavaEE、框架、服务器、工具等)- [x] 、多线程和并发- [x] 四、Java虚拟机- [x] 五、数据库...
Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改。 代码复用。 增强代码的可靠性和灵活性。 增加代码的可理解性。 面向对象编程有...
Java研发工程师知识点总结 大纲 &nbsp;一、Java基础(语言、集合框架、OOP、设计模式等)&nbsp;二、Java高级(JavaEE、框架、服务器、工具等)&nbsp;三、多线程和并发&nbsp;四、...
文章目录常量和变量常量定义分类字面值常量整型常量浮点型常量布尔常量字符常量定义的final常量命名规范常量池变量定义特点使用分类成员变量局部变量作用域数据类型基本数据类型数值型整数类型小数类型字符型布尔型...
一、用 Java 自己实现一个 LRU LRU(Least Recently Used:最近最少使用):简单的说,就是保证基本的 Cache容量,如果超过容量则必须丢掉最不常用的缓存数据,再添加最新的缓存。每次读取缓存都会改变缓存的使用...
Java的特点 6 构造方法及String 7 String中的常用方法 8 Object 9 引用jar包 9 集合 10 内部类及异常 18 线程 20 File类及其的方法 21 IO流及其所有方法和用法 23 Socket 26 GUI 26 Oracle 27 前端模块 35 JDBC的...
此篇文章包括多个知识点,涉及到timer,timerTask,countdowntimer,handler及alermmanager 等相关知识点
第14章 并发 多线程程序在较低的层次上扩展了多任务的概念:一个程序同时执行多个任务。通常,每一个任务称为一个线程( thread), 它是线程控制的简称。...【API】java.Iang.Thread 1.0: stati...
从14年到如今,加上大学4年,不知不觉已经接触8年多了,觉得这门语言很好玩,啥都能搞,平时自己想弄点好玩的东西,都能拿它来玩起来。 所以,我们要学会,学好,喜欢上这门语言,一但在这门语言上有一定功底,再...
API:Application Programming ...Java.lang.String:StringBuilder/StringBuffer :Java.lang.Number :日期处理类/date/simpledateformat/Calendar :Java.util.Date :日期类,其每一个实例都用于表示一个确切的时
多线程的相关概念2.Java中创建线程2.1 继承Thread类2.2 实现Runable接口2.3 实现Callable接口3.线程的状态3.1 线程的5大状态介绍3.2 sleep方法改变线程状态3.3 yield方法改变线程状态3.4 join方法改变线程状态3.5 ...
初级学习OpenGL ES2.0的课程,从无到有,从进本的函数讲起,每一课时都附带一个例子程序。深入浅出的讲解可编程管线技术,令人费解的文理,以及混合技术,各种优化技术:顶点缓冲区,索引缓冲区,帧缓冲区,介绍精灵的使用,并使用shader制作粒子特效。 掌握OpenGL ES2.0可编程管线,以及OpenGLES2.0的特性,带领初学者入门。