




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 西 安 思 源 学 院 Java 课程设计报告 课程名称: JAVA语言程序设计 设计题目: 简单小闹钟的设计与实现 学 院: 电子信息工程学院 专业班级: 计算机科学与技术统本01班学 号 : 姓 名: 张慧 小组成员 : 谢莉萍 时 间 : 2013年6月29日 目 录一、项目设计 1.1设计题目2 1.2设计思路2 1.3设计内容 2 1.3.1 Clock类的UML简图2 1.3.2 各方法功能描述列表 22、 算法描述 2.1 基本算法描述 3 2.2 主要模块算法描述 3当前动态时间的显示的设计与实现4 2.2.2闹钟功能的实现 4 2.2.3闹铃功能的实现 5 三、程序源代码6
2、四、运行结果截图9五、总结10闹钟的设计与实现一、项目设计 1.1题目描述:结合JAVA图形界面的知识设计一个简单的小闹钟 1.2设计思路百度下载的闹钟程序设计,参考别人的程序,通过改编,并添加一些自己的程序,最终实现小闹钟的运行.本次设计要求画出时钟的面板,动态的显示当前时间,可设定或解除闹钟时间,并提供闹钟服务相应的文字提示功能,可以自己选择闹钟提示声音提示功能,并在闹钟设定的输入框中有简单的排错功能。 1.3设计内容画出Clock类的UML简图Clock类中的变量ri, shi, fen, miao, dangqian, guanji: JLabelqueding, dakai : JB
3、uttonmusic, RI, SHI, FEN, MIAO : JTextFieldh = 0, f = 0, m = 0, r = 0 : intFo, foo : booleansoumd1 : public AudioClipClock类中的函数public clock()public static void main(String agrs)public void run()各方法功能描述列表Clock类方法功能Main()执行main函数Clock()Clock类的构造函数,用于对时钟界面的初始化Run()用于对时钟的动态显示的执行,并判断是否设定了闹钟时间,若当前时间与设定的时间
4、相等则播放选定的音乐二、算法描述 2.1基本算法描述 本程序先是在框架中新建了一个容器,然后用GridLayout类对面板进行划分,程序引入java.util.Date来显示当前时间,并用一个永真循环,来对当前时间显示的更新,引入java.io.File来实现对文件的读写操作,程序设计了一个选择按钮,用来选择文件,并且声明只能选择,WAU、MID的文件,引入用java.applet.Applet 来播放音乐文件,用getText()函数获取输入的闹钟设定时间,并永真循环和当前的时间进行对比,若相等则播放音乐,若不相等则显示离目标设定时间的差距。 2.2主要模块算法描述当前动态时间的显示的设计与
5、实现。 (1)功能:可以实时的更新显示系统完整的时间 (2)算法:引入java.util.Date用while循环更新时间 (3)代码:public void run() while (true) Date now = new Date();/设置一个新的当前时间对象。 dangqian.setText("当前时间: " + now.toString();/显示当前的时间 .音乐文件的选择。 (1)功能:用打开按钮实现对本地音乐文件的选择(2)来实现对音乐本地音乐文件的选择。 (3)代码: dakai.addActionListener(new ActionListener
6、() public void actionPerformed(ActionEvent event) JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); fileChooser.setCurrentDirectory(new File("."); / 设置文件选择器当前目录 fileChooser.setFileFilter(new javax.swing.filechooser.FileFilt
7、er() public boolean accept(File file) / 可接受的文件类型 String name = file.getName().toLowerCase(); return name.endsWith(".wav") | name.endsWith(".au") | file.isDirectory(); public String getDescription() return "音乐文件(*.wav,*.au)" );闹铃功能的实现(1)功能:到达设定闹钟时间,会有输出文字及产生音乐。(2)算法:读入Cl
8、ock类中的时间,并设置一个Timer,每隔0.1秒进行比对,如果字符串之间匹配就显示(3)代码: public void run() if (fo) foo = true; RI.setEditable(false); SHI.setEditable(false); FEN.setEditable(false); MIAO.setEditable(false); queding.setText("关闭"); /关闭闹钟设定 SimpleDateFormat ri = new SimpleDateFormat("dd"); SimpleDateForma
9、t shi = new SimpleDateFormat("HH"); SimpleDateFormat fen = new SimpleDateFormat("mm"); SimpleDateFormat miao = new SimpleDateFormat("ss"); riqi = Integer.parseInt(ri.format(now); shizhong = Integer.parseInt(shi.format(now); fenzhong = Integer.parseInt(fen.format(now); m
10、iaozhong = Integer.parseInt(miao.format(now); if (riqi = r && shizhong = h && fenzhong = f && miaozhong = m) try soumd1 = Applet.newAudioClip(new File(music.getText() .toURL(); / 播放音乐 soumd1.loop(); fo = false; foo = false; catch (MalformedURLException e) e.printStackTrace();
11、 try Thread.sleep(1000); catch (InterruptedException ie) 三、程序源代码import java.applet.Applet;import java.applet.AudioClip;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.*;import java.io.File;import .MalformedURLException;import java.text.SimpleDateFormat;import java.util.Dat
12、e;import javax.swing.*;class clock extends JFrame implements RunnableJLabel ri, shi, fen, miao, dangqian, guanji;JButton queding, dakai;JTextField music, RI, SHI, FEN, MIAO;int h = 0, f = 0, m = 0, r = 0;boolean fo = false, foo = false;public AudioClip soumd1;int riqi, shizhong, fenzhong, miaozhong;
13、public clock() Container c = getContentPane(); c.setLayout(new GridLayout(4, 1); JPanel jp = new JPanel(); dangqian = new JLabel(); jp.add(dangqian); c.add(jp); JPanel jp3 = new JPanel(); guanji = new JLabel("离闹铃时间:0日0时0分0秒"); jp3.add(guanji); c.add(jp3); JPanel jp1 = new JPanel(); music =
14、 new JTextField(20); dakai = new JButton("选择闹铃音乐"); jp1.add(music); jp1.add(dakai); c.add(jp1); ri = new JLabel("日"); RI = new JTextField(4); shi = new JLabel("时"); SHI = new JTextField(4); fen = new JLabel("分"); FEN = new JTextField(4); miao = new JLabel(&quo
15、t;秒"); MIAO = new JTextField(4); JPanel jp2 = new JPanel(); jp2.add(ri); jp2.add(RI); jp2.add(shi); jp2.add(SHI); jp2.add(fen); jp2.add(FEN); jp2.add(miao); jp2.add(MIAO); queding = new JButton("确定"); jp2.add(queding); c.add(jp2); setSize(400, 160); setVisible(true); dakai.addActionLi
16、stener(new ActionListener() public void actionPerformed(ActionEvent event) JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); fileChooser.setCurrentDirectory(new File("."); / 设置文件选择器当前目录 fileChooser.setFileFilter(new javax.s
17、wing.filechooser.FileFilter() public boolean accept(File file) String name = file.getName().toLowerCase(); return name.endsWith(".wav") | name.endsWith(".au") | file.isDirectory(); public String getDescription() return "音乐文件(*.wav,*.au)" ); if (fileChooser.showOpenDialo
18、g(clock.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 h = Integer.pars
19、eInt(SHI.getText(); f = Integer.parseInt(FEN.getText(); m = Integer.parseInt(MIAO.getText(); if (1 <= h && h <= 31 && 0 <= h && h <= 23 && 0 <= f && f <= 59 && 0 <= m && m <= 59) Date now = new Date(); SimpleDateFormat r
20、i = new SimpleDateFormat("dd"); if (RI.getText() = null | RI.getText().equals("") r = Integer.parseInt(ri.format(now); RI.setText(ri.format(now); else r = Integer.parseInt(RI.getText(); fo = true; else JOptionPane.showMessageDialog(null, "输入时间错误"); catch (Exception e) J
21、OptionPane.showMessageDialog(null, "请输入正确的时间"); else try fo = false; RI.setEditable(true); SHI.setEditable(true); FEN.setEditable(true); MIAO.setEditable(true); queding.setText("确定"); soumd1.stop(); catch(Exception E) System.out.println("关闭"); );public static void main(
22、String agrs) clock s = new clock(); Thread t1 = new Thread(s); t1.start(); s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void run() while (true) Date now = new Date(); dangqian.setText("当前时间: " + now.toString(); if (foo) if (h = 0|h - shizhong<0) h += 24; r = r - 1; if (f = 0|
23、f - fenzhong<0) f += 60; h -= 1; if (m = 0|m - miaozhong<0) m += 60; f -= 1; guanji.setText("离闹铃时间: " + (r - riqi) + "日" + (h - shizhong) + "时" + (f - fenzhong) + "分" + (m - miaozhong-1) + "秒"); if(r<riqi) foo=false; guanji.setText("离闹铃
24、时间:0日0时0分0秒"); else if(r<=riqi&&h<shizhong) foo=false; guanji.setText("离闹铃时间:0日0时0分0秒"); else if(r<=riqi&&h<=shizhong&&f<fenzhong) foo=false; guanji.setText("离闹铃时间:0日0时0分0秒"); else if(r<=riqi&&h<=shizhong&&f<=fe
25、nzhong&&m<miaozhong) foo=false; guanji.setText("离闹铃时间:0日0时0分0秒"); if (fo) foo = true; RI.setEditable(false); SHI.setEditable(false); FEN.setEditable(false); MIAO.setEditable(false); queding.setText("关闭"); SimpleDateFormat ri = new SimpleDateFormat("dd"); Simp
26、leDateFormat shi = new SimpleDateFormat("HH"); SimpleDateFormat fen = new SimpleDateFormat("mm"); SimpleDateFormat miao = new SimpleDateFormat("ss"); riqi = Integer.parseInt(ri.format(now); shizhong = Integer.parseInt(shi.format(now); fenzhong = Integer.parseInt(fen.format(now); miaozhong = In
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年山东省环保发展集团有限公司校园招聘(144人左右)笔试参考题库附带答案详解
- 2025新员工岗前安全培训考试试题及答案(基础+提升)
- 25年公司主要负责人安全培训考试试题及参考答案(综合卷)
- 25年企业员工安全培训考试试题含答案【A卷】
- 2025简易知识产权专利合同范本
- 2025商品房买卖合同指南
- 2025国际航空运输合同样本
- 2025年硅力敏传感器合作协议书
- 2025网络安全顾问聘用合同书
- 2025建筑公司农民工劳动合同
- 2024年中铁集装箱运输有限责任公司招聘笔试参考题库附带答案详解
- 新生儿肠胀气课件
- 物业管理中英文对照外文翻译文献
- 专题17浮力与液面升降问题(选择、填空题)- 中考物理一轮复习专题练习(解析版)
- 《麻醉后苏醒延迟》课件
- 《物业客服培训》课件
- 06J403-1 楼梯、栏杆、栏板图集
- 实习中遇到的问题
- 供货合同终止申请书范本
- 中国军力报告2023全文
- 深圳市南山区教育系统招聘公办幼儿园园长考试题库2023
评论
0/150
提交评论