日常生活中,闹钟的应用非常广泛。使用它可以更好地帮助人们安排时间。编写程序,实现一个非常简单的闹钟,控制台会不断输出当前的时间,并且每隔一秒钟会发出提示音。用户可以单击“确定”按钮来退出程序。
思路分析:
- 首先定义一个外部类,此外部类包括延迟时间和提示标志两个成员变量,通过构造函数来获取这两个参数;
- 在此外部类中定义一个方法作为闹钟的启动函数;
- 在该方法中定义一个局部内部类来实现ActionListener接口,重写actionPerformed()方法,使用SimpleDateFormat类和Date()方法获取系统的当前时间并输出,判断提示标志,若为true则使用Toolkit.getDefaultToolkit().beep();重复之前的输出方法;创建一个新的Timer()对象来重复输出;
- 在主方法中创建对象并实例化后,使用JOptionPane类的showMessageDialog()方法弹出提示框来让用户选择是否退出。
代码如下:
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date; import javax.swing.Timer; public class AlarmClock { private int delay;
private boolean flag; public AlarmClock(int delay, boolean flag) {
this.delay = delay;
this.flag = flag;
} public void start() {
class Printer implements ActionListener { @Override
public void actionPerformed(ActionEvent e) {
SimpleDateFormat format = new SimpleDateFormat("k:m:s");
String result = format.format(new Date());
System.out.println("当前的时间是:" + result);
if (flag) {
Toolkit.getDefaultToolkit().beep();
}
}
}
new Timer(delay, new Printer()).start();
}
}
import javax.swing.JOptionPane; public class Test {
public static void main(String[] args) {
AlarmClock clock = new AlarmClock(1000, true);
clock.start();
JOptionPane.showMessageDialog(null, "是否退出?");
System.exit(0);
}
}
效果如图: