今天注意到一个问题,说是小闹钟用java编程应该怎么实现。既然是闹钟,就涉及到2个难题,一个是倒计时,一个是声音的播放。网上资料查找,java确实有提供播放声音的包,在程序的开始导入相应的包
import sun.audio.*;
这里就提供了播放声音的类和方法,当然在编译过程中,会有提示,这个是一个内部类,有可能会在后期正式类被废弃。不用管它,现在还是能够比较方便的使用。
还有一个倒计时,这里可以考虑用一个for循环来搞定,对要提醒的时间做一个减法,每过一分钟或者一秒钟,就系统sleep一下,当计时到0的时候触发相应的代码就可以。全部代码如下:
import sun.audio.*;
import java.io.*;
public class Test{
public static void main(String[] args){
CountTime count = new CountTime( 2 ); //2分钟测试用
new Thread(count).start();
}
}
class CountTime implements Runnable{
private int time;
public CountTime(int minute){ //给出2种构造方法,一种是分钟,另一种是小时分钟
time = minute;
}
public CountTime(int hour, int minute){
time = hour * 60 + minute;
}
public void run(){
if(time > 0){
for(int i = time * 60 ; i > 0; i --){ //用秒来作为计算的次数
System.out.println(i / 3600 + "小时:" +
(i / 60) % 60 + "分钟" + i % 60 +"秒"); //每隔一秒显示
try{
Thread.sleep( 1000 ); //系统停顿一秒
}catch( InterruptedException e){
e.printStackTrace();
}
}
try{
InputStream in = new FileInputStream("Ring01.wav");
AudioStream audio = new AudioStream(in); //使用sun包里的类AudioStream
AudioPlayer.player.start(audio);
}catch(Exception e){ }
System.out.println("时间到了");
}
}
}