import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
public class TestSuspend{
public static void main(String[] args){
JFrame jf = new JFrame("Timer");
JButton pause = new JButton("Pause");
JLabel clock = new JLabel("Timer");
clock.setBackground(Color.GREEN);
clock.setOpaque(true);
clock.setHorizontalAlignment(JLabel.CENTER);
jf.add(clock,"Center");
jf.add(pause,"North");
jf.setSize(140,80);
jf.setLocation(500,300);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
MyThread mt = new MyThread(clock,10000);
mt.start();
MyListener ml = new MyListener(clock,mt);
pause.addActionListener(ml);
}
}
class MyThread extends Thread{
private JLabel clock;
private long time;
private long end;
public MyThread(JLabel clock,long time){
this.clock = clock;
this.time = time;
}
public void init(){
long start = new Date().getTime();
end = start + time;
}
public void run(){
this.init();
while(true){
long now = new Date().getTime();
time = end - now;
if(time > 0){
String s = this.convert(time);
clock.setText(s);
}else{
break;
}
try{
Thread.sleep(10);
}catch(InterruptedException e){
e.printStackTrace();
}
}
clock.setText("时间到!");
clock.setBackground(Color.RED);
}
public String convert(long time){
long h = time / 3600000;
long m = (time % 3600000) / 60000;
long s = (time % 60000) / 1000;
long ms = (time % 1000) / 10;
String ph = h<10 ? "0":"";
String pm = m<10 ? "0":"";
String ps = s<10 ? "0":"";
String pms = ms<10 ? "0":"";
String txt = ph + h + ":" + pm + m + ":" + ps + s + "." + pms + ms;
return txt;
}
}
class MyListener implements ActionListener{
private JLabel clock;
private MyThread mt;
private boolean running= true;
public MyListener(JLabel clock,MyThread mt){
this.clock = clock;
this.mt = mt;
}
public void actionPerformed(ActionEvent e){
if(!mt.isAlive())
return;
JButton jb = (JButton)(e.getSource());
if(running){
jb.setText("Replay");
clock.setBackground(Color.YELLOW);
mt.suspend();
}else{
jb.setText("Pause");
clock.setBackground(Color.green);
mt.init();
mt.resume();
}
running = !running;
}
}
分享到:
相关推荐
Java倒计时程序设计与实现 Java倒计时程序是指使用Java语言编写的倒计时应用程序,能够实时显示倒计时信息。下面是关于Java倒计时程序的设计与实现细节。 一、倒计时程序的设计思想 倒计时程序的设计思想是基于...
Java倒计时源代码是一种基于Java编程语言实现的简单应用程序,用于显示从特定时间开始的倒计时。这个程序特别适合那些需要定时提醒或者计时功能的场景,比如考试倒计时、活动倒计时等。它包含了源代码文件以及打包好...
Java小程序倒计时牌是一个基于图形用户界面(GUI)和多线程技术实现的应用程序,它主要用于展示一种从设定时间到零的递减计时效果。在这个程序中,GUI是用户与程序交互的窗口,而线程则负责后台的计时任务,确保计时...
【JAVA倒计时器】是一种基于JAVA编程语言实现的简单计时工具,它主要用于实现从预设时间开始向后计算的倒计时功能。对于初学者来说,这是一个很好的实践项目,因为它涉及到基本的用户界面设计、事件处理以及时间管理...
【倒计时器 Java】是基于Java编程语言开发的一个简单实用的小程序,它主要用于实现时间的倒计时功能。在编程领域,倒计时计时器是一个常见的应用场景,例如用于考试系统、活动启动预告或者定时任务等。这个程序对...
使用纯java+swing技术,来实现的《元旦倒计时》程序,界面卡通漂亮,另程序支持的功能如下: - 通用元旦倒计时,今年能用、明年也能用 - 支持生肖显示 - 支持农历显示 - 支持天干地支显示 - 支持倒计时显示 代码...
- 使用编程语言:倒计时程序可以使用各种编程语言来编写,如Python、JavaScript、Java、C#等。对于桌面应用,可以选择Python或Java;对于网页应用,JavaScript是首选,因为它可以直接在浏览器上运行。 - 事件驱动:...
【北京奥运倒计时程序】是一款专为纪念2008年北京奥运会而设计的小程序,它以HTML版本的形式呈现,使得用户可以在网页浏览器中直接运行。这个程序的核心功能是实时显示距离北京奥运会开幕的剩余时间,激发了人们对这...
辩论倒计时小程序是为辩论活动量身定制的时间管理工具,它允许用户根据不同的辩论阶段设置倒计时,确保辩论过程的流畅和时间的合理分配。 核心功能包括: 1. **自定义倒计时**:用户可以为辩论的各个环节设置不同的...
java编写的一个小程序,倒计时,可以用做一个记时间的程序
在IT领域,倒计时程序是一种常见的应用,尤其在演示、演讲或教学环境中十分实用。这类程序通常包含一些核心功能,如系统级热键、音频播放(如.mp3和.wav格式)以及计时器类。下面我们将深入探讨这些知识点。 首先,...
- **类与对象**:Java程序的基本单元是类,倒计时系统可能包含一个或多个类来封装不同的功能,如`CountdownTimer`类,用于创建和管理倒计时过程。 - **时间处理**:在Java中,可以使用`java.util.Date`、`java....
在Android应用开发中,有时我们需要实现一种功能,即在用户界面上显示3秒倒计时,用户可以选择在倒计时结束前点击界面来取消自动关闭,或者等待倒计时结束后,程序自动关闭界面。这样的设计可以增加用户体验,给用户...
【安卓计时小程序】 在移动应用开发领域,安卓(Android)平台因其开源性和广泛的设备覆盖度,成为开发者们青睐的平台之一。计时器(Chronometer)是安卓系统提供的一种UI组件,它允许用户在界面上展示倒计时或者...
### Java倒计时程序解析与实现 在IT领域,尤其是软件开发中,倒计时功能是一种常见的需求,常用于各种应用程序如活动计时、赛事倒数等场景。本篇文章将深入解析一个基于Java语言编写的倒计时程序,探讨其核心逻辑、...
一个Java写的小程序,支持北京奥运
在Java中,多线程允许程序执行多个任务同时进行,这里`TimeThread`负责执行倒计时逻辑。每当时间减少一秒,线程会更新`TimeFrame`中的时间显示,并确保倒计时的平滑进行。使用线程是必要的,因为它避免了主线程(GUI...
【全屏幕秒表倒计时】可能是这款工具的核心程序文件,负责实现全屏显示和倒计时的功能。这个文件可能包含了计时算法、界面渲染以及用户交互逻辑。秒表功能通常包括开始、暂停、重置等操作,而倒计时则需要设定初始...
Java Applet是一个嵌入在网页中的小程序,由Java语言编写,可以提供丰富的交互性功能,如本例中的倒计时有声定时器。这个特定的Java Applet项目名为"TimeCount",它不仅实现了基本的倒计时功能,还特别加入了声音...
本资源提供了一个专为电子商务平台设计的拼团倒计时小程序的开发和使用指南。该小程序旨在促进电商平台的拼团购买活动,通过引入倒计时功能,增加用户的参与感和紧迫感,从而提高销售转化率。 主要特点: 拼团购买...