《JAVA音乐播放器软件设计.pdf》由会员分享,可在线阅读,更多相关《JAVA音乐播放器软件设计.pdf(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 佛山科学技术学院 可视化编程技术课程设计报告 音乐播放器软件设计 学生姓名:钟洁文 学 号:2012914232 年级专业:12 级教育技术学 指导老师:容汝佳 学 院:教育科学学院 广东佛山 提交日期:2014年 6月 目录 1 前言.3 2 概要设计.4 2.1开发环境.4 2.2播放器功能.4 2.3 界面设计.4 2.4类的总体.5 3详细设计.6 3.1类的主要方法.6 31.1初始化窗口:.6 3.1.3 设计的总体认识.13 3.1.4 程序流程图.13 4 运行结果.15 5 测试分析.15 5.1程序运行情况:.16 5.2 程序异常处理:6 程序清单:.16 参考文献.2
2、4 设计总结.24 摘 要:该 程 序 是 一 个 简 单 的 音 乐 播 放 器,具 有 良 好 的 界 面,使用人员能快捷简单地进行操作。即时准确地播放需要的音乐文件,对人们的生活有一定的帮助。可以实现简单的音乐播放器功能,如:打开本地文件,播放,暂停,停止,背景播放,单曲循环等等,界面充实,交互友好,可以添加多首歌曲目录。关键字:java音乐播放器,音乐播放器类,方法,事件 1 前言 随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司空见惯的应用程序了,在学习了 Java语言之后,我决定使用 Java 语言编写一个简单的播放器,可以实现简
3、单的播放功能,满足日常基本的工作学习和娱乐需要。Java 是由 Sun 公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。正因为如此,Java 已成为当今 Internet上最流行、最受欢迎的一种程序开发语言。Java 开发小组把 Java 按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。Java 基本版本叫 Java 2 标准版(Java 2 Standard Edition,J2SE),它包含建立 Java 应用程序或者是 Applet 所需的应用程序编程接口(API)。Jav
4、a 2 移动版(The Java 2 Mobile Edition,J2ME)包含创建无线 Java 应用程序的 API。还有 Java 2 企业版(The Java 2 Enterprise,J2EE)是 J2SE 的增强版本,包含建立多层架构应用程序 API。Java 语言是由 C+语言发展起而来的,是一种彻底的面向对象的程序设计语言。作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。Java 语言去掉了 C+语言的一些容易引起错误的特性。Java 语言的特点有:面向对象、跨平台、安全性、多线程和图形功能强。2 概要设计 2.1开发环境 开发平台:Microsoft Window
5、s XP Professional Service Pack 2 开发工具:JBuilder 2007+JDK 1.6.0_02 2.2播放器功能 功能 1:文件菜单包含打开、循环和退出三个菜单项:打开:用户通过该菜单项打开本地音乐文件,听任何用户想听的歌曲;循环:通过循环设置,用户可以重复的播放一首喜欢的歌曲;退出:退出音乐播放器,及退出该程序。功能 2:播放控制菜单包含播放、暂停和停止三个菜单项:播放:选择歌曲之后,通过点击播放菜单项启动播放器播;暂停:暂停当前正在播放的音乐;停止:停止当前正在播放的音乐。功能 3:播放列表菜单则是当向里面添加歌曲之后才能够查看到里面所包含的歌曲目录:当用
6、户通过文件打开本地音乐文件后,及相当于在播放列表里面添加了歌曲,及形成相应的歌曲播放目录。功能 4:音量控制键:可以点击该控键进行音量大小的调节以及是否静音的设。功能 5:属性查询键:通过该控键,用户可以查看当前播放音乐的相关属性,如:歌曲名,歌手,发布时间,所属专辑等等,并获取关于该歌曲的用户所需的相关信息。2.3 界面设计 图 2.3 播放器器面板 2.4 类的总体 public void setupMenu()public void actionPerformed(ActionEvent e)public void itemStateChanged(ItemEvent arg0)publ
7、ic static void main(String args)public void controllerUpdate(ControllerEvent e)3 详细设计 3.1 类的主要方法 31.1初始化窗口:public void 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.addA
8、ctionListener(this);cbmi.addActionListener(this);ee.addActionListener(this);f.addSeparator();f.addSeparator();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.
9、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.add(f);mb.add(c);mb.add(l);setMenuBar(mb);3.1.2音乐播放窗口机基本功能的实现:public void actionPerformed(ActionEvent e)String cufile,selectfile,cu
10、rrentDirectory;if(e.getActionCommand().equals(退出)dispose();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 Tim
11、e(0);return;if(e.getActionCommand().equals(打开)fd=new(this,打开媒体文件,);fd.setVisible(true);if(fd.getFile()=null)return;selectfile=fd.getFile();currentDirectory=fd.getDirectory();cufile=currentDirectory+selectfile;MenuItem mi=new MenuItem(selectfile);mi.setActionCommand(cufile);MenuBar mb=getMenuBar();Me
12、nu 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);return;if(player=null)System.out.println(无法创建播放器);return;
13、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(ControllerEvent e)Container tainer=getContentPane();if(e instanceof ControllerClosed
14、Event)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.CE
15、NTER);cc=player.getControlPanelComponent();cc.setBackground(Color.blue);if(cc!=null)tainer.add(cc,BorderLayout.SOUTH);if(vc!=null)pack();return;Else setSize(300,75);setVisible(true);return;3.1.3 设计的总体认识 JAVA设计的摘要 JAVA设计的目录结构 JAVA设计的概要和详细设计 JAVA设计的版权意识 JAVA设计需要编译的环境 JAVA设计的实用性 3.1.4 程序流程图 4 运行结果 图 4
16、结果显示 5 测试分析 5.1程序运行情况:该音乐播放器设置了两个窗口,运行程序时打开的初始化欢迎界面,用户可以根据自己的需求进行菜单栏里面的基本操作和相应的设置,当用户添加或者打开音乐播放文件的时候,程序将会显示出第二个音乐文件播放窗口,与此同时,第一个初始化窗口将会自动隐藏,在音乐播放窗口里面用户可以进行相关的音乐播放的控制操作。当用户进入音乐播放窗口时,该窗口有几个快捷控制的控键:时间追踪轴:可以实现播放的前进、后退功能,根据用户需求调节音乐的播放进度等;音量控制:设置静音,打开扬声器或者调节音量大小;播放列表:查看当前播放音乐的相关属性。5.2 程序异常处理:如果已存在一个播放器,则先
17、将其关闭,稍后重新创建创建播放器时需要捕捉一些异常。当要打开的文件名不存在时,则捕捉异常;当打开的文件格式不被支持时,捕捉异常,提示不能找到播放器。6 程序清单:import javax.media.ControllerEvent;import javax.media.ControllerListener;import javax.media.EndOfMediaEvent;import javax.media.PrefetchCompleteEvent;import javax.media.RealizeCompleteEvent;import javax.media.*;import ja
18、vax.swing.*;import java.awt.*;import java.awt.event.*;public void 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.a
19、ddActionListener(this);f.addSeparator();f.addSeparator();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);
20、c.add(move);c.add(pause);c.add(stop);c.addSeparator();c.addSeparator();c.addSeparator();MenuBar mb=new MenuBar();mb.add(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.ge
21、tActionCommand().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.getActionCommand().equals(打开)fd=new(this,打开媒体文件,);fd.set
22、Visible(true);if(fd.getFile()=null)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.get
23、ActionCommand();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.addControllerListener(this);playe
24、r.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)play
25、er.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.CENTER);cc=player.getControlPanelComponent();cc.setBackground(Color.blue);i
26、f(cc!=null)tainer.add(cc,BorderLayout.SOUTH);if(vc!=null)pack();return;Else setSize(300,75);setVisible(true);return;参考文献 林良信 Java JDK 6 学习笔记 刘浦迎 谢春 java 程序设计实用教程 科学出版社 张白一 崔尚林 面向对象程序设计java 西安电子科技大学出版社 潘浩 李芙玲 Java程序设计 清华大学出版社 设计总结 经过一个学期的JAVA学习,对JAVA编程有了一定的认识,在做这个课程设计的时候,刚开始感觉自己无从下手,不知道该怎么开始,很茫然。最终利用
27、网络资源和查阅图书馆的书籍,在傅老师和同学的指导和讨论下,经过一段时间终于完成了这个设计。当程序运行结束看到弹出的计算器的界面时,感到很欣慰,虽然只是一个小小的东西,但却是自己起步的成就,从中学到了很多书本知识不能体现的东西,对JAVA的学习有了一定的兴趣。也通过这次的程序设计感觉到自己平时对于编程实际操作的贫乏,没有把书本上的知识真正的掌握牢固。在做写程序实现功能的过程中,界面和基本功能的设计需要较强的逻辑思维,一不小心就容易出错,在具体的功能设计和实现的过程中要尽可能用最简单的语句实现基本的播放器功能。我觉得可以设计更多的菜单及菜单项目从而实现更多的功能,如:删除,保存等,还可以实现更多的背景效果或者更多可选择的皮肤,还可以对按钮添加音效效果,这样感觉整个音乐播 放器更具有灵活性,媒体感更强烈一些,界面会更加丰富和生动一些。通过自己做课程设计,自己设计界面,功能和设计功能的代码实现,将理论知识运用到实际操作中,加深了对理论知识的理解和记忆,在做程序设计的过程中,对很多代码的多次操作和重复使用,使得对很多基本的代码和相关的操作能够牢固的记忆。
限制150内