智能闹钟程序目前实现的主要功能显示当前本地时间(时分秒)。手动设置响铃时间(时分秒)。快速设定响铃时间。显示所剩时...
智能闹钟
程序目前实现的主要功能
显示当前本地时间(时分秒)。
手动设置响铃时间(时分秒)。
快速设定响铃时间。
显示所剩时间(时分秒)。
闹钟震动并响铃。
终止设定的闹钟。
选择背景音乐。
试听背景音乐。
停止试听。
更换闹钟界面背景图片。
主要功能实现方法简介
- 闹钟用户图形界面:采用Java GUI编程工具包Swing和AWT进行图形界面设计。主要使用的控件有Java Swing JMenuBar,JMenu,JMenuItem,JLable,JButton,Timer以及JComboBox。
- 显示本地时间:使用Calendar抽象类获取本地时间并采用getInstance()方法来创建对象。所获取的本地时间再通过SimpleDateFormat类转换成所需要的格式。
- 设置响铃时间:手动设置响铃时间主要通过三个JComboBox来让用户选择需要定时的时间,当用户通过下拉框选择了确定时间以后,通过getHour(),getMunite(),getSecond()三个方法获取用户所选时间。自动设置响铃时间则是通过用户界面的六个JButton进行设置,六个JButton功能依次为:增加1分钟,增加5分钟,增加30分钟,减少1分钟,减少5分钟,减少30分钟(都是基于当前时间)。当用户按下按键后,对应的数字将会存入addActionListener(this)中。
- 选择背景音乐、试听背景音乐和停止试听:用户通过JComboBox选择预先存放于文件夹中的背景音乐(音乐格式为.wav),当用户点击试听按钮后,将会通过Thread()新建一个线程,并采用star()方法将线程启动,开始播放音乐。当用户点击停止按钮后,采用interrupt()方法将线程停止,停止播放音乐。
public void myListener() {
new Thread(new Runnable() {// 设置一个线程
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
executeSound();// 播放声音
}
}
}).start();
}
- 闹铃功能:当用户设置好响铃时间并选择好背景音乐之后,系统创建一个线程,通过now.setText(now())获取当前时间和result.setText(surplus_time())得到剩余时间,并使用Timer实时刷新当前时间和剩余时间,显示在图形界面之中。当本地时间与预先设置的闹铃时间一致即剩余时间为零时,图形界面显示“时间到了哦”,而后系统预先创建的音乐播放线程executeSound()启动,开始播放背景音乐,同时通过图形界面坐标实时变化的方法来实现震动功能。
public void timeListener() {
new Thread(new Runnable() {// 设置一个线程
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
initMainPanel();
now.setText(now());// 得到系统时间
result.setText(surplus_time());// 得到剩余时间
}
}
}).start();
}
- 更换背景图片:用户点击更换背景图片后,系统自动从文件夹中获取下一张图片,将图片上传后更新到Panel并显示。
private void changeBG() {
setFlagOfBackground(true);
if (background < AlarmBackground.getBackgroundListSize()) {
iconed = true;
setVisible(false);
if (background != AlarmBackground.getBackgroundListSize() - 1) {
++background;
} else {
background = 0;
}
initMainPanel();
}
}
运行效果图


总体功能
