用java设计智能闹钟

技术设计 · 2019/08/30
← 返回技术文章

智能闹钟程序目前实现的主要功能显示当前本地时间(时分秒)。手动设置响铃时间(时分秒)。快速设定响铃时间。显示所剩时...

智能闹钟

程序目前实现的主要功能

显示当前本地时间(时分秒)。

手动设置响铃时间(时分秒)。

快速设定响铃时间。

显示所剩时间(时分秒)。

闹钟震动并响铃。

终止设定的闹钟。

选择背景音乐。

试听背景音乐。

停止试听。

更换闹钟界面背景图片。

主要功能实现方法简介

  • 闹钟用户图形界面:采用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();

}

}

运行效果图

用java设计智能闹钟
用java设计智能闹钟

总体功能