程序功能实现一个可以精确到秒的倒计时,所以想用到thread sleep()一下,实现每秒获取一次系统时间。不过这样一来在网页中调用它就关不掉了,必须还得去进程里结束。
欢迎大虾指正!
import java.applet.Applet;
import java.awt.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.* ;
public class Data extends Applet { boolean b = true ;
Calendar calendar = new GregorianCalendar();
Calendar examdate = new GregorianCalendar(2008,7,8,20,0,0);
Thread t = new Thread();
public void run() {
}
public void paint(Graphics g) {
int sign=0;
int signy=0;
t.start();
try
{
while( calendar.before( examdate ) && b )
{
g.clearRect(5,5,250,70);
g.drawRect(5,5,250,70);
g.setColor(Color.red);
g.drawString( " 现在时刻 : " +(calendar.get(Calendar.MONTH)+1)+" 月 "+
calendar.get(Calendar.DAY_OF_MONTH) +" 日 "+ calendar.get(Calendar.HOUR_OF_DAY)+
" 时 "+calendar.get(Calendar.MINUTE)+" 分 "+ calendar.get(Calendar.SECOND)+" 秒 ",15,30); if(calendar.get(Calendar.YEAR)!=2008)
signy=1;
else
signy=0;
if(calendar.get(Calendar.HOUR_OF_DAY)>=8)
{
sign=1;
}
else
sign=0; g.drawString( " 离奥运开幕还有 : "+(365* signy +19-calendar.get(Calendar.DAY_OF_YEAR)-sign)+" 天 "+
(24*sign+7-calendar.get(Calendar.HOUR_OF_DAY)) +" 时 "+ (59-calendar.get(Calendar.MINUTE))+
" 分 " + (60-calendar.get(Calendar.SECOND)) + " 秒 " ,15,60); t.sleep(1000);
calendar = new GregorianCalendar();
} g.drawString(" 感 谢 使 用 08 奥 运 倒 计 时 ",15,30);
g.drawString(" 祝 中 国 成 功 !",15,60);
}
catch(InterruptedException e)
{
}
}
public void stop() {
b=false;
System.exit(0);
} public void destroy() {
b=false;
System.exit(0);
}
}
欢迎大虾指正!
import java.applet.Applet;
import java.awt.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.* ;
public class Data extends Applet { boolean b = true ;
Calendar calendar = new GregorianCalendar();
Calendar examdate = new GregorianCalendar(2008,7,8,20,0,0);
Thread t = new Thread();
public void run() {
}
public void paint(Graphics g) {
int sign=0;
int signy=0;
t.start();
try
{
while( calendar.before( examdate ) && b )
{
g.clearRect(5,5,250,70);
g.drawRect(5,5,250,70);
g.setColor(Color.red);
g.drawString( " 现在时刻 : " +(calendar.get(Calendar.MONTH)+1)+" 月 "+
calendar.get(Calendar.DAY_OF_MONTH) +" 日 "+ calendar.get(Calendar.HOUR_OF_DAY)+
" 时 "+calendar.get(Calendar.MINUTE)+" 分 "+ calendar.get(Calendar.SECOND)+" 秒 ",15,30); if(calendar.get(Calendar.YEAR)!=2008)
signy=1;
else
signy=0;
if(calendar.get(Calendar.HOUR_OF_DAY)>=8)
{
sign=1;
}
else
sign=0; g.drawString( " 离奥运开幕还有 : "+(365* signy +19-calendar.get(Calendar.DAY_OF_YEAR)-sign)+" 天 "+
(24*sign+7-calendar.get(Calendar.HOUR_OF_DAY)) +" 时 "+ (59-calendar.get(Calendar.MINUTE))+
" 分 " + (60-calendar.get(Calendar.SECOND)) + " 秒 " ,15,60); t.sleep(1000);
calendar = new GregorianCalendar();
} g.drawString(" 感 谢 使 用 08 奥 运 倒 计 时 ",15,30);
g.drawString(" 祝 中 国 成 功 !",15,60);
}
catch(InterruptedException e)
{
}
}
public void stop() {
b=false;
System.exit(0);
} public void destroy() {
b=false;
System.exit(0);
}
}
解决方案 »
- java 连接 pervasive sql
- Double相除,如何只精确到小数点后2为呢
- java程序通过哪几个函数来方便的控制系统时间?
- 用java如何获取硬件信息???用java怎样编写类似于WINDOWS的任务管理器--》性能???
- 如何用JAVA编程实现Telnet连接Windows(非linux or unix)
- 一个不知如何解决的循环问题
- 运行时环境标准版(Runtime Environment Standard Edition)和 SDK标准版(SDK Standard Edition)的区别
- 关于读取socket问题的求教[很奇怪的现象]
- Java软件的帮助实现?
- 编译成功,但是没有输出结果这时哪里出错了?
- 打包jar的Class-Path属性不可以指定目录?
- UDP转发后的机制?
你在paint里面 不停的循环
主线程都被你阻塞了
*
*/
package test3;import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Calendar;
import java.util.GregorianCalendar;public class Data extends Applet
{ boolean b = true; Calendar calendar = new GregorianCalendar(); Calendar examdate = new GregorianCalendar(2008, 7, 8, 20, 0, 0);// Thread t = new Thread(); public void run()
{
} public void init()
{
// this.set new Thread()
{
public void run()
{
while (calendar.before(examdate) && b)
{
try
{ Thread.sleep(1000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
calendar = new GregorianCalendar();
Data.this.repaint();
}
}
}.start();
} public void paint(Graphics g)
{
int sign = 0;
int signy = 0;
// t.start(); g.clearRect(5, 5, 250, 130);
g.drawRect(5, 5, 250, 130);
g.setColor(Color.red);
g.drawString(" 现在时刻 : " + (calendar.get(Calendar.MONTH) + 1) + " 月 "
+ calendar.get(Calendar.DAY_OF_MONTH) + " 日 "
+ calendar.get(Calendar.HOUR_OF_DAY) + " 时 "
+ calendar.get(Calendar.MINUTE) + " 分 "
+ calendar.get(Calendar.SECOND) + " 秒 ", 15, 30); if (calendar.get(Calendar.YEAR) != 2008)
signy = 1;
else
signy = 0;
if (calendar.get(Calendar.HOUR_OF_DAY) >= 8)
{
sign = 1;
}
else
sign = 0; g.drawString(
" 离奥运开幕还有 : "
+ (365 * signy + 19
- calendar.get(Calendar.DAY_OF_YEAR) - sign)
+ " 天 "
+ (24 * sign + 7 - calendar.get(Calendar.HOUR_OF_DAY))
+ " 时 " + (59 - calendar.get(Calendar.MINUTE)) + " 分 "
+ (60 - calendar.get(Calendar.SECOND)) + " 秒 ", 15, 60); g.drawString(" 感 谢 使 用 08 奥 运 倒 计 时 ", 15, 90);
g.drawString(" 祝 中 国 成 功 !", 15, 120); } public void stop()
{
b = false;
System.exit(0);
} public void destroy()
{
b = false;
System.exit(0);
}
}
小弟不胜感激,分数已加。另外希望本贴对以后像我这样的菜鸟有所帮助!