JAVA音樂播放器軟件設(shè)計(jì)_第1頁
JAVA音樂播放器軟件設(shè)計(jì)_第2頁
JAVA音樂播放器軟件設(shè)計(jì)_第3頁
JAVA音樂播放器軟件設(shè)計(jì)_第4頁
JAVA音樂播放器軟件設(shè)計(jì)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

PAGEPAGE25佛山科學(xué)技術(shù)學(xué)院《可視化編程技術(shù)》課程設(shè)計(jì)報(bào)告音樂播放器軟件設(shè)計(jì)學(xué)生姓名:鐘潔文學(xué)號(hào):2012914232年級(jí)專業(yè):12級(jí)教育技術(shù)學(xué)指導(dǎo)老師:容汝佳學(xué)院:教育科學(xué)學(xué)院廣東★佛山提交日期:2014年6月目錄1前言 32概要設(shè)計(jì) 42.1開發(fā)環(huán)境 42.2播放器功能 42.3界面設(shè)計(jì) 42.4類的總體 53詳細(xì)設(shè)計(jì) 63.1類的主要方法 631.1初始化窗口: 63.1.3設(shè)計(jì)的總體認(rèn)識(shí) 133.1.4程序流程圖 134運(yùn)行結(jié)果 155測(cè)試分析 155.1程序運(yùn)行情況: 165.2程序異常處理:6程序清單: 16參考文獻(xiàn) 24設(shè)計(jì)總結(jié) 24摘要:該程序是一個(gè)簡單的音樂播放器,具有良好的界面,使用人員能快捷簡單地進(jìn)行操作。即時(shí)準(zhǔn)確地播放需要的音樂文件,對(duì)人們的生活有一定的幫助。可以實(shí)現(xiàn)簡單的音樂播放器功能,如:打開本地文件,播放,暫停,停止,背景播放,單曲循環(huán)等等,界面充實(shí),交互友好,可以添加多首歌曲目錄。關(guān)鍵字:java音樂播放器,音樂播放器類,方法,事件1前言隨著科學(xué)技術(shù)的不斷發(fā)展,計(jì)算機(jī)已經(jīng)成為我們工作學(xué)習(xí)和生活中不可缺少的工具。文本編輯器是個(gè)人計(jì)算機(jī)最司空見慣的應(yīng)用程序了,在學(xué)習(xí)了Java語言之后,我決定使用Java語言編寫一個(gè)簡單的播放器,可以實(shí)現(xiàn)簡單的播放功能,滿足日?;镜墓ぷ鲗W(xué)習(xí)和娛樂需要。Java是由Sun公司開發(fā)的新一代純面向?qū)ο蟮木W(wǎng)絡(luò)編程語言。其目標(biāo)是建立一種在任意種機(jī)器、任一種操作系統(tǒng)的網(wǎng)絡(luò)環(huán)境中運(yùn)行的軟件,實(shí)行所謂的“程序?qū)懸淮?,到處運(yùn)行”的目標(biāo)。正因?yàn)槿绱?,Java已成為當(dāng)今Internet上最流行、最受歡迎的一種程序開發(fā)語言。Java開發(fā)小組把Java按特性分為基本版、移動(dòng)版、企業(yè)版,每個(gè)版本有一個(gè)軟件開發(fā)包。Java基本版本叫Java2標(biāo)準(zhǔn)版(Java2StandardEdition,J2SE),它包含建立Java應(yīng)用程序或者是Applet所需的應(yīng)用程序編程接口(API)。Java2移動(dòng)版(TheJava2MobileEdition,J2ME)包含創(chuàng)建無線Java應(yīng)用程序的API。還有Java2企業(yè)版(TheJava2Enterprise,J2EE)是J2SE的增強(qiáng)版本,包含建立多層架構(gòu)應(yīng)用程序API。Java語言是由C++語言發(fā)展起而來的,是一種徹底的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。作為一種純面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它非常適合大型軟件的開發(fā)。Java語言去掉了C++語言的一些容易引起錯(cuò)誤的特性。Java語言的特點(diǎn)有:面向?qū)ο?、跨平臺(tái)、安全性、多線程和圖形功能強(qiáng)。2概要設(shè)計(jì)2.1開發(fā)環(huán)境 開發(fā)平臺(tái):MicrosoftWindowsXPProfessionalServicePack2 開發(fā)工具:JBuilder2007+JDK1.6.0_022.2播放器功能功能1:文件菜單包含打開、循環(huán)和退出三個(gè)菜單項(xiàng):打開:用戶通過該菜單項(xiàng)打開本地音樂文件,聽任何用戶想聽的歌曲;循環(huán):通過循環(huán)設(shè)置,用戶可以重復(fù)的播放一首喜歡的歌曲;退出:退出音樂播放器,及退出該程序。

功能2:播放控制菜單包含播放、暫停和停止三個(gè)菜單項(xiàng):播放:選擇歌曲之后,通過點(diǎn)擊播放菜單項(xiàng)啟動(dòng)播放器播;暫停:暫停當(dāng)前正在播放的音樂;停止:停止當(dāng)前正在播放的音樂。

功能3:播放列表菜單則是當(dāng)向里面添加歌曲之后才能夠查看到里面所包含的歌曲目錄:當(dāng)用戶通過文件打開本地音樂文件后,及相當(dāng)于在播放列表里面添加了歌曲,及形成相應(yīng)的歌曲播放目錄。功能4:音量控制鍵:可以點(diǎn)擊該控鍵進(jìn)行音量大小的調(diào)節(jié)以及是否靜音的設(shè)。

功能5:屬性查詢鍵:通過該控鍵,用戶可以查看當(dāng)前播放音樂的相關(guān)屬性,如:歌曲名,歌手,發(fā)布時(shí)間,所屬專輯等等,并獲取關(guān)于該歌曲的用戶所需的相關(guān)信息。2.3界面設(shè)計(jì)圖2.3播放器器面板2.4類的總體public

void

setupMenu()publicvoidactionPerformed(ActionEvente)publicvoiditemStateChanged(ItemEventarg0)publicstaticvoidmain(String[]args)publicvoidcontrollerUpdate(ControllerEvente)3詳細(xì)設(shè)計(jì)3.1類的主要方法31.1初始化窗口:publicvoidsetupMenu(){Menuf=newMenu("文件");MenuItemmi=newMenuItem("打開");CheckboxMenuItemcbmi=newCheckboxMenuItem("循環(huán)",false);MenuItemee=newMenuItem("退出");f.add(mi);f.add(cbmi);f.add(ee);mi.addActionListener(this);cbmi.addActionListener(this);ee.addActionListener(this);f.addSeparator();f.addSeparator();f.addSeparator();Menul=newMenu("播放列表");Menuc=newMenu("播放控制");MenuItemmove=newMenuItem("播放");MenuItempause=newMenuItem("暫停");MenuItemstop=newMenuItem("停止");move.addActionListener(this);pause.addActionListener(this);stop.addActionListener(this);c.add(move);c.add(pause);c.add(stop);c.addSeparator();c.addSeparator();c.addSeparator();MenuBarmb=newMenuBar();mb.add(f);mb.add(c);mb.add(l);setMenuBar(mb);} 3.1.2publicvoidactionPerformed(ActionEvente){Stringcufile,selectfile,currentDirectory;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(newTime(0));}return;}if(e.getActionCommand().equals("打開")){FileDialogfd=newFileDialog(this,"打開媒體文件",FileDialog.LOAD);fd.setVisible(true);if(fd.getFile()==null)return;selectfile=fd.getFile();currentDirectory=fd.getDirectory();cufile=currentDirectory+selectfile;MenuItemmi=newMenuItem(selectfile);mi.setActionCommand(cufile);MenuBarmb=getMenuBar();Menum=mb.getMenu(2);mi.addActionListener(this);m.add(mi);}else{cufile=e.getActionCommand();selectfile=cufile;}if(player!=null)player.close();try{player=Manager.createPlayer(newMediaLocator("file:"+cufile));}catch(Exceptione2){System.out.println(e2);return;}if(player==null){System.out.println("無法創(chuàng)建播放器");return;}first=false;setTitle(selectfile);player.addControllerListener(this);player.prefetch();}publicvoiditemStateChanged(ItemEventarg0){}publicstaticvoidmain(String[]args){newMediaPlayer("播放器");}publicvoidcontrollerUpdate(ControllerEvente){Containertainer=getContentPane();if(einstanceofControllerClosedEvent){if(vc!=null){remove(vc);vc=null;}}if(einstanceofEndOfMediaEvent){player.setMediaTime(newTime(0));if(loop)player.start();return;}if(einstanceofPrefetchCompleteEvent){player.start();return;}if(einstanceofRealizeCompleteEvent){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);setVisible(true);return;}}

}

}3.1.3設(shè)計(jì)的總體認(rèn)識(shí)JAVA設(shè)計(jì)的摘要JAVA設(shè)計(jì)的目錄結(jié)構(gòu)JAVA設(shè)計(jì)的概要和詳細(xì)設(shè)計(jì)JAVA設(shè)計(jì)的版權(quán)意識(shí)JAVA設(shè)計(jì)需要編譯的環(huán)境JAVA設(shè)計(jì)的實(shí)用性3.1.44運(yùn)行結(jié)果圖4結(jié)果顯示5測(cè)試分析5.1程序運(yùn)行情況:

該音樂播放器設(shè)置了兩個(gè)窗口,運(yùn)行程序時(shí)打開的初始化歡迎界面,用戶可以根據(jù)自己的需求進(jìn)行菜單欄里面的基本操作和相應(yīng)的設(shè)置,當(dāng)用戶添加或者打開音樂播放文件的時(shí)候,程序?qū)?huì)顯示出第二個(gè)音樂文件播放窗口,與此同時(shí),第一個(gè)初始化窗口將會(huì)自動(dòng)隱藏,在音樂播放窗口里面用戶可以進(jìn)行相關(guān)的音樂播放的控制操作。當(dāng)用戶進(jìn)入音樂播放窗口時(shí),該窗口有幾個(gè)快捷控制的控鍵:時(shí)間追蹤軸:可以實(shí)現(xiàn)播放的前進(jìn)、后退功能,根據(jù)用戶需求調(diào)節(jié)音樂的播放進(jìn)度等;音量控制:設(shè)置靜音,打開揚(yáng)聲器或者調(diào)節(jié)音量大??;播放列表:查看當(dāng)前播放音樂的相關(guān)屬性。5.2程序異常處理:

如果已存在一個(gè)播放器,則先將其關(guān)閉,稍后重新創(chuàng)建創(chuàng)建播放器時(shí)需要捕捉一些異常。當(dāng)要打開的文件名不存在時(shí),則捕捉異常;當(dāng)打開的文件格式不被支持時(shí),捕捉異常,提示不能找到播放器。6程序清單:importjavax.media.ControllerEvent;importjavax.media.ControllerListener;importjavax.media.EndOfMediaEvent;importjavax.media.PrefetchCompleteEvent;importjavax.media.RealizeCompleteEvent;importjavax.media.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicvoidsetupMenu(){Menuf=newMenu("文件");MenuItemmi=newMenuItem("打開");CheckboxMenuItemcbmi=newCheckboxMenuItem("循環(huán)",false);MenuItemee=newMenuItem("退出");f.add(mi);f.add(cbmi);f.add(ee);mi.addActionListener(this);cbmi.addActionListener(this);ee.addActionListener(this);f.addSeparator();f.addSeparator();f.addSeparator();Menul=newMenu("播放列表");Menuc=newMenu("播放控制");MenuItemmove=newMenuItem("播放");MenuItempause=newMenuItem("暫停");MenuItemstop=newMenuItem("停止");move.addActionListener(this);pause.addActionListener(this);stop.addActionListener(this);c.add(move);c.add(pause);c.add(stop);c.addSeparator();c.addSeparator();c.addSeparator();MenuBarmb=newMenuBar();mb.add(f);mb.add(c);mb.add(l);setMenuBar(mb);}publicvoidactionPerformed(ActionEvente){Stringcufile,selectfile,currentDirectory;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(newTime(0));}return;}if(e.getActionCommand().equals("打開")){FileDialogfd=newFileDialog(this,"打開媒體文件",FileDialog.LOAD);fd.setVisible(true);if(fd.getFile()==null)return;selectfile=fd.getFile();currentDirectory=fd.getDirectory();cufile=currentDirectory+selectfile;MenuItemmi=newMenuItem(selectfile);mi.setActionCommand(cufile);MenuBarmb=getMenuBar();Menum=mb.getMenu(2);mi.addActionListener(this);m.add(mi);}else{cufile=e.getActionCommand();selectfile=cufile;}if(player!=null)player.close();try{player=Manager.createPlayer(newMediaLocator("file:"+cufile));}catch(Exceptione2){System.out.println(e2);return;}if(player==null){System.out.println("無法創(chuàng)建播放器");return;}first=false;setTitle(selectfile);player.addControllerListener(this);player.prefetch();}publicvoiditemStateChanged(ItemEventarg0){}publicstaticvoidmain(String[]args){newMediaPlayer("播放器");}publicvoidcontrollerUpdate(ControllerEvente){Containertainer=getContentPane();if(einstanceofControllerClosedEvent){if(vc!=null){remove(vc);vc=null;}}if(einstanceofEndOfMediaEvent){player.setMediaTime(newTime(0));if(loop)player.start();return;}if(einstanceofPrefetchCompleteEvent){player.start();return;}if(einstanceo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論