Java应用 简易闹钟设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java应用简易闹钟设计
一、项目概述
应用Java程序设计语言,主要是使用Swing组件、事件处理器、线程控制等实现对简易闹钟的开发设计,设计过程中要求闹钟能够显示当前时间,并且能够设定闹钟的个性铃声,当设定了闹钟时间后,待到设置时间时能够自动播放音乐。
关键词:Java 面向对象闹钟铃声设置
1.1 问题和要求
如何应用Java语言实现对闹钟的简易设计,要求设计实现的闹钟能够显示当前的时间,能够设置个性闹铃,并且可以预先设定闹钟时间,待到设置时间时能够自动播放音乐。
二、设计与开发
2.1 问题分析
1)如何实现闹钟外观的简易设计;
2)如何能够获取当前时间并显示出来;
3)如何查阅文件夹选择音乐文件来实现个性闹铃的设置;
4)如何实现闹钟时间的设定,使闹钟能够在指定时间闹铃。
2.2 程序设计
1)运用Swing组件实现对闹钟的外观设计。主要应用到标签(JLable)、文本域(JTextField)、按钮(JButton)等,采用网格式布局,由网格布局管理器(GridLayout)来实现。
2)创建线程来获取当前时间,主要通过Runnable接口,使用run()方法来实现当前时间的显示。
3)要使按“选择闹铃音乐”按钮时能够触发对音乐文件的选择,则对按钮添加监听器并采用实例化文件选择器。
4)为了能在输入定点时间后实现对闹钟时间的设定,则需要对“确定”按钮添加监听器。
2.3 代码实现
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.Applet;
import java.applet.AudioClip;
import java.io.File;
import .*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class AlarmClock extends JFrame implements Runnable { JLabel dangqian;
JButton queding, xuanze;
JTextField music,RI, SHI, FEN, MIAO;
int h=0,f=0,m=0,r=0;
boolean fo=false;
public AudioClip soumd1;
public AlarmClock() {
Container c = getContentPane();
c.setLayout(new GridLayout(3, 1));
JPanel jp = new JPanel();
dangqian = new JLabel();
jp.add(dangqian);
c.add(jp);
JPanel jp1 = new JPanel();
music = new JTextField(20);
xuanze = new JButton("选择闹铃音乐");
jp1.add(music);
jp1.add(xuanze);
c.add(jp1);
RI = new JTextField(4);
SHI = new JTextField(4);
FEN = new JTextField(4);
MIAO = new JTextField(4);
JPanel jp2 = new JPanel();
jp2.add(new JLabel("日"));
jp2.add(RI);
jp2.add(new JLabel("时"));
jp2.add(SHI);
jp2.add(new JLabel("分"));
jp2.add(FEN);
jp2.add(new JLabel("秒"));
jp2.add(MIAO);
queding = new JButton("确定");
jp2.add(queding);
c.add(jp2);
setSize(420, 150);
setVisible(true);
xuanze.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTOR IES);
fileChooser.setCurrentDirectory(new File("."));
if (fileChooser.showOpenDialog(AlarmClock.this) == JFileChooser.APPROVE_OPTION) {
String fileName =
fileChooser.getSelectedFile().getAbsolutePath();
music.setText(fileName);
}
}
});
queding.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if(queding.getText().equals("确定")){
try{
r=Integer.parseInt(RI.getText());
h=Integer.parseInt(SHI.getText());
f=Integer.parseInt(FEN.getText());
m=Integer.parseInt(MIAO.getText());
if(1<=r&&r<=31&&0<=h&&h<=23&&0<=f&&f<=59&&0<=m&&m<=59){
fo=true;
}
else
JOptionPane.showMessageDialog(null, "输入时间错误");
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "请输入正确的时间");