版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 佛山科学技术学院可视化编程技术课程设计报告音乐播放器软件设计学生姓名:钟洁文 学 号: 年级专业:12级教育技术学指导老师: 容汝佳学 院: 教育科学学院广东佛山提交日期:2014年6月目录1 前言32 概要设计42.1开发环境42.2播放器功能42.3界面设计42.4类的总体53详细设计63.1类的主要方法631.1初始化窗口:63.1.3设计的总体认识133.1.4程序流程图134运行结果155测试分析155.1程序运行情况:165.2 程序异常处理:6 程序清单:16参考文献24设计总结24摘要:该程序是一个简单的音乐播放器,具有良好的界面,使用人员能快捷简单地进行操作。即时准确地播放
2、需要的音乐文件,对人们的生活有一定的帮助。可以实现简单的音乐播放器功能,如:打开本地文件,播放,暂停,停止,背景播放,单曲循环等等,界面充实,交互友好,可以添加多首歌曲目录。关键字:java音乐播放器,音乐播放器类,方法,事件1 前言随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的播放器,可以实现简单的播放功能,满足日常基本的工作学习和娱乐需要。Java是由Sun公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意种机器、任一种操作系统的网络环境中运
3、行的软件,实行所谓的“程序写一次,到处运行”的目标。正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。Java基本版本叫Java 2标准版(Java 2 Standard Edition,J2SE),它包含建立Java应用程序或者是Applet所需的应用程序编程接口(API)。Java 2移动版(The Java 2 Mobile Edition,J2ME)包含创建无线Java应用程序的API。还有Java 2企业版(The Java 2 Enterprise,J2EE)是J
4、2SE的增强版本,包含建立多层架构应用程序API。Java语言是由C+语言发展起而来的,是一种彻底的面向对象的程序设计语言。作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。Java语言去掉了C+语言的一些容易引起错误的特性。Java语言的特点有:面向对象、跨平台、安全性、多线程和图形功能强。2 概要设计2.1开发环境 开发平台:Microsoft Windows XP Professional Service Pack 2 开发工具:JBuilder 2007 + JDK 1.6.0_022.2播放器功能功能 1:文件菜单包含打开、循环和退出三个菜单项:打开:用户通过该菜单项打开本
5、地音乐文件,听任何用户想听的歌曲;循环:通过循环设置,用户可以重复的播放一首喜欢的歌曲;退出:退出音乐播放器,及退出该程序。 功能 2:播放控制菜单包含播放、暂停和停止三个菜单项: 播放:选择歌曲之后,通过点击播放菜单项启动播放器播; 暂停:暂停当前正在播放的音乐; 停止:停止当前正在播放的音乐。 功能 3:播放列表菜单则是当向里面添加歌曲之后才能够查看到里面所包含的歌曲目录:当用户通过文件打开本地音乐文件后,及相当于在播放列表里面添加了歌曲,及形成相应的歌曲播放目录。功能 4:音量控制键:可以点击该控键进行音量大小的调节以及是否静音的设。 功能 5:属性查询键:通过该控键,用户可以查看当前播
6、放音乐的相关属性,如:歌曲名,歌手,发布时间,所属专辑等等,并获取关于该歌曲的用户所需的相关信息。2.3界面设计图2.3 播放器器面板2.4类的总体publicvoidsetupMenu()public void actionPerformed(ActionEvent e)public void itemStateChanged(ItemEvent arg0)public static void main(String args)public void controllerUpdate(ControllerEvent e)3详细设计3.1类的主要方法31.1初始化窗口:public void
7、setupMenu() Menu f = new Menu(文件); MenuItem mi = new MenuItem(打开); CheckboxMenuItem cbmi = new CheckboxMenuItem(循环, false); MenuItem ee = new MenuItem(退出); f.add(mi); f.add(cbmi); f.add(ee); mi.addActionListener(this); cbmi.addActionListener(this); ee.addActionListener(this); f.addSeparator(); f.add
8、Separator(); f.addSeparator(); Menu l = new Menu(播放列表); Menu c = new Menu(播放控制); MenuItem move = new MenuItem(播放); MenuItem pause = new MenuItem(暂停); MenuItem stop = new MenuItem(停止); move.addActionListener(this); pause.addActionListener(this); stop.addActionListener(this);c.add(move); c.add(pause);
9、 c.add(stop); c.addSeparator(); c.addSeparator(); c.addSeparator(); MenuBar mb = new MenuBar(); mb.add(f); mb.add(c); mb.add(l); setMenuBar(mb); 3.1.2音乐播放窗口机基本功能的实现:public void actionPerformed(ActionEvent e) String cufile, selectfile, currentDirectory; if (e.getActionCommand().equals(退出) dispose();
10、return; if (e.getActionCommand().equals(播放) if (player != null) player.start(); return; if (e.getActionCommand().equals(暂停) if (player != null) player.stop(); return; if (e.getActionCommand().equals(停止) if (player != null) player.stop(); player.setMediaTime(new Time(0); return; if (e.getActionComman
11、d().equals(打开) FileDialog fd = new FileDialog(this, 打开媒体文件, FileDialog.LOAD); fd.setVisible(true); if (fd.getFile() = null) return; selectfile = fd.getFile(); currentDirectory = fd.getDirectory(); cufile = currentDirectory + selectfile; MenuItem mi = new MenuItem(selectfile); mi.setActionCommand(cuf
12、ile);MenuBar mb = getMenuBar(); Menu m = mb.getMenu(2); mi.addActionListener(this); m.add(mi); else cufile = e.getActionCommand(); selectfile = cufile; if (player != null) player.close(); try player = Manager.createPlayer(new MediaLocator(file: + cufile); catch (Exception e2) System.out.println(e2);
13、 return; if (player = null) System.out.println(无法创建播放器); return; first = false; setTitle(selectfile); player.addControllerListener(this); player.prefetch(); public void itemStateChanged(ItemEvent arg0) public static void main(String args) new MediaPlayer(播放器); public void controllerUpdate(Controller
14、Event e) Container tainer = getContentPane(); if (e instanceof ControllerClosedEvent) if (vc != null) remove(vc); vc = null; if (e instanceof EndOfMediaEvent) player.setMediaTime(new Time(0); if (loop) player.start(); return; if (e instanceof PrefetchCompleteEvent) player.start(); return; if (e inst
15、anceof RealizeCompleteEvent) vc = player.getVisualComponent(); if (vc != null) tainer.add(vc, BorderLayout.CENTER); cc = player.getControlPanelComponent();cc.setBackground(Color.blue); if (cc != null) tainer.add(cc, BorderLayout.SOUTH); if (vc != null) pack(); return; Else setSize(300, 75); setVisib
16、le(true); return;3.1.3设计的总体认识l JAVA设计的摘要l JAVA设计的目录结构l JAVA设计的概要和详细设计l JAVA设计的版权意识l JAVA设计需要编译的环境l JAVA设计的实用性3.1.4程序流程图4运行结果图4结果显示5测试分析5.1程序运行情况: 该音乐播放器设置了两个窗口,运行程序时打开的初始化欢迎界面,用户可以根据自己的需求进行菜单栏里面的基本操作和相应的设置,当用户添加或者打开音乐播放文件的时候,程序将会显示出第二个音乐文件播放窗口,与此同时,第一个初始化窗口将会自动隐藏,在音乐播放窗口里面用户可以进行相关的音乐播放的控制操作。 当用户进入音乐
17、播放窗口时,该窗口有几个快捷控制的控键:时间追踪轴:可以实现播放的前进、后退功能,根据用户需求调节音乐的播放进度等;音量控制:设置静音,打开扬声器或者调节音量大小;播放列表:查看当前播放音乐的相关属性。5.2 程序异常处理: 如果已存在一个播放器,则先将其关闭,稍后重新创建创建播放器时需要捕捉一些异常。当要打开的文件名不存在时,则捕捉异常;当打开的文件格式不被支持时,捕捉异常,提示不能找到播放器。6 程序清单:import javax.media.ControllerEvent; import javax.media.ControllerListener; import javax.media
18、.EndOfMediaEvent; import javax.media.PrefetchCompleteEvent; import javax.media.RealizeCompleteEvent; import javax.media.*; import javax.swing.*; import java.awt.*; import java.awt.event.*;public void setupMenu() Menu f = new Menu(文件); MenuItem mi = new MenuItem(打开); CheckboxMenuItem cbmi = new Check
19、boxMenuItem(循环, false); MenuItem ee = new MenuItem(退出); f.add(mi); f.add(cbmi); f.add(ee); mi.addActionListener(this); cbmi.addActionListener(this); ee.addActionListener(this); f.addSeparator(); f.addSeparator(); f.addSeparator(); Menu l = new Menu(播放列表); Menu c = new Menu(播放控制); MenuItem move = new
20、 MenuItem(播放); MenuItem pause = new MenuItem(暂停); MenuItem stop = new MenuItem(停止); move.addActionListener(this); pause.addActionListener(this); stop.addActionListener(this);c.add(move); c.add(pause); c.add(stop); c.addSeparator(); c.addSeparator(); c.addSeparator(); MenuBar mb = new MenuBar(); mb.a
21、dd(f); mb.add(c); mb.add(l); setMenuBar(mb); public void actionPerformed(ActionEvent e) String cufile, selectfile, currentDirectory; if (e.getActionCommand().equals(退出) dispose(); return; if (e.getActionCommand().equals(播放) if (player != null) player.start(); return; if (e.getActionCommand().equals(
22、暂停) if (player != null) player.stop(); return; if (e.getActionCommand().equals(停止) if (player != null) player.stop(); player.setMediaTime(new Time(0); return; if (e.getActionCommand().equals(打开) FileDialog fd = new FileDialog(this, 打开媒体文件, FileDialog.LOAD); fd.setVisible(true); if (fd.getFile() = nu
23、ll) return; selectfile = fd.getFile(); currentDirectory = fd.getDirectory(); cufile = currentDirectory + selectfile; MenuItem mi = new MenuItem(selectfile); mi.setActionCommand(cufile);MenuBar mb = getMenuBar(); Menu m = mb.getMenu(2); mi.addActionListener(this); m.add(mi); else cufile = e.getAction
24、Command(); selectfile = cufile; if (player != null) player.close(); try player = Manager.createPlayer(new MediaLocator(file: + cufile); catch (Exception e2) System.out.println(e2); return; if (player = null) System.out.println(无法创建播放器); return; first = false; setTitle(selectfile); player.addControll
25、erListener(this); player.prefetch(); public void itemStateChanged(ItemEvent arg0) public static void main(String args) new MediaPlayer(播放器); public void controllerUpdate(ControllerEvent e) Container tainer = getContentPane(); if (e instanceof ControllerClosedEvent) if (vc != null) remove(vc); vc = null; if (e instanceof EndOfMediaEvent) player.setMediaTime(new Time(0); if (loop) player.start(); return; if (e instanceof PrefetchCompleteEvent) player.start(); return; if (e instanceof RealizeCompleteEvent) vc = player.getVisualComponent(); if (vc != null) tainer.add(vc, BorderLayout.CENT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年唐山科技职业技术学院单招职业适应性测试题库附答案详解(基础题)
- 2026年哈尔滨应用职业技术学院单招综合素质考试题库及答案详解(易错题)
- 2026年四川国际标榜职业学院单招职业适应性测试题库及一套答案详解
- 儿童互联网安全教育方案研究
- 10.1任务一 负债认知
- 过程安全管理实战心得
- 泌尿系统肿瘤 课件
- 医生在护理业务中的领导力
- 九江银行上饶分行2026年社会招聘考试备考题库及答案解析
- 2026年广州卫生职业技术学院单招职业适应性测试题库附答案解析
- 2026年江苏信息职业技术学院单招综合素质考试题库及参考答案详解一套
- 成都市金牛区2025年社区网格工作人员考试题库及答案
- 部编七年级-语文文言文练习及答案
- 46566-2025温室气体管理体系管理手册及全套程序文件
- 2025年剑桥商务英语(BEC)初级考试真题及答案
- 茶叶健康的秘密武器-探究茶叶的营养价值与健康影响
- 电工单招实操考试题库及答案
- 施工现场消防应急预案方案
- 分期汽车不过户协议书
- 环境卫生管理知识培训课件
- 2025-2030互联网+中医服务模式创新与用户接受度分析
评论
0/150
提交评论