版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
課程設計匯報課程設計題目:java音樂播放器學生姓名:專業(yè):XXXXXXXXXXXXX班級:指導老師:20XX年X月X日一、課程設計目標1、編程設計音樂播放軟件,使之實現(xiàn)音樂播放功效。2、培養(yǎng)學生用程序處理實際問題能力和愛好。3、加深java中對多媒體編程應用。二、課程設計要求利用學到編程知識和編程技巧,要求學生:1、系統(tǒng)設計要能完成題目所要求功效,設計軟件能夠進行簡單播放及其它基礎功效。2、編程簡練,可用,盡可能使系統(tǒng)功效愈加完善和全方面3、說明書、步驟圖要清楚。三、課程設計內(nèi)容1、課程設計題目及介紹音樂播放軟件要求:有圖形界面,能播放MP3歌曲,有播放列表,前一首、后一首等常見播放軟件功效。2、設計說明關鍵利用多媒體編程、圖形界面、數(shù)組及循環(huán)進行設計,從而實現(xiàn)簡單音樂播放。publicMyMusicPlayer():實現(xiàn)窗口組員方法publicvoidrun():實現(xiàn)改變歌曲播放狀態(tài)組員方法publicAudioCliploadSound(Stringfilename):實現(xiàn)對聲音加載publicvoidmouseClicked(MouseEvente):實現(xiàn)對按鈕監(jiān)聽publicvoiditemStateChanged(ItemEventarg0):返回一個AudioClip對象3、程序步驟圖開始開始出現(xiàn)界面選擇播放歌曲播放暫停前一首后一首結(jié)束4、程序清單importjava.awt.*;importjavax.swing.*;importjava.applet.*;importjava.awt.event.*;import.*; publicclassMyMusicPlayerextendsThreadimplementsMouseListener,ItemListener{ JFrameMainFrame=newJFrame("MyMusicPlayer");//定義主窗體 JLabelsongname=newJLabel();//用標簽顯示狀態(tài) JButtonlast=newJButton(); JButtonplay=newJButton(); JButtonnext=newJButton(); JButtonloop=newJButton();//定義上一曲,播放,下一曲,循環(huán)四個按鈕 JLabellist=newJLabel("播放列表"); Listsonglist=newList();//顯示歌曲列表 AudioClip[]song=newAudioClip[10];//將音頻文件放在數(shù)組中 AudioClipplaysong;//目前選定播放音頻文件 String[]name={"黃小琥-順其自然.wav","陳奕迅-張氏情歌.wav","黃小琥_沒那么簡單.wav", "戚薇-假如愛忘了.wav","郭采潔-狠狠哭.wav","test.wav"}; //將全部文件名存放在字符串數(shù)組name中 Stringplayname;//目前選定播放音頻名 intj=0;//統(tǒng)計目前選定播放是哪首歌曲,默認為第一首 booleanplaybutton=true;//統(tǒng)計播放狀態(tài),默認為暫停播放 booleanloopbutton=false;//統(tǒng)計循環(huán)狀態(tài),默認為沒有循環(huán) Threadthread=newThread("pl"); staticMyMusicPlayerYu; publicMyMusicPlayer(){ MainFrame.setLayout(null); MainFrame.setBounds(300,50,310,500); MainFrame.setVisible(true); MainFrame.setDefaultCloseOperation(3); MainFrame.add(songname); Fontsname=newFont("斜體",Font.ITALIC,18); songname.setFont(sname);//設置顯示狀態(tài)字體為斜體 songname.setText("我音樂播放器"); songname.setBounds(10,10,300,40); last.setBounds(10,70,50,40); play.setBounds(70,70,50,40);//設置四個功效鍵位置和大小 next.setBounds(130,70,50,40); loop.setBounds(190,70,50,40); last.setIcon(newImageIcon("1.png")); play.setIcon(newImageIcon("2.png")); next.setIcon(newImageIcon("3.png")); loop.setIcon(newImageIcon("4.png"));//設置四個功效鍵圖片 last.addMouseListener(this); play.addMouseListener(this); next.addMouseListener(this); loop.addMouseListener(this);//添加按鍵鼠標監(jiān)聽器 MainFrame.add(last); MainFrame.add(play); MainFrame.add(next); MainFrame.add(loop); list.setBounds(10,120,100,30); Fontlis=newFont("宋",Font.BOLD,15); list.setFont(lis);//顯示“播放列表” MainFrame.add(list); songlist.setBounds(10,150,250,300); songlist.setBackground(Color.GREEN);//設置播放列表背景色為綠色 songlist.setVisible(true); songlist.addItemListener((ItemListener)this);//添加列表監(jiān)聽器 MainFrame.add(songlist); for(inti=0;i<name.length;i++) { song[i]=loadSound(name[i]);//逐一獲取音頻文件 songlist.add(name[i]);//將歌曲名添加到播放列表 } playsong=song[0]; } publicstaticvoidmain(String[]args){ Yu=newMyMusicPlayer(); Yu.start(); } publicvoidmouseClicked(MouseEvente){ JButtonbtn=(JButton)e.getSource(); playsong.stop(); if(btn==play) {if(playbutton==false) playbutton=true; else playbutton=false;//當按下play后改變播放狀態(tài) } else if(btn==last) {j-=1;//當按下last后將上一曲選定 if(j<0) j=name.length-1;//若之前選定為第一首,則跳到最終一首 playbutton=true; loopbutton=false; } else if(btn==next) {j+=1;//當按下next后將下一曲選定 if(j>=name.length) j=0;//若之前選定為最終一首,則跳到第一首 playbutton=true; loopbutton=false; } else if(btn==loop) {if(loopbutton==false) { loopbutton=true; playbutton=true; } else {//按下loop后,改變循環(huán)狀態(tài)和播放狀態(tài) loopbutton=false; playbutton=false; } } if(playbutton==true) Yu.run(); else { songname.setText("暫停播放:"+playname);//暫停播放歌曲 play.setIcon(newImageIcon("2.png")); } } publicvoidmouseEntered(MouseEventarg0){ //TODOAuto-generatedmethodstub } publicvoidmouseExited(MouseEventarg0){ //TODOAuto-generatedmethodstub } publicvoidmousePressed(MouseEventarg0){ //TODOAuto-generatedmethodstub } publicvoidmouseReleased(MouseEventarg0){ //TODOAuto-generatedmethodstub } publicvoiditemStateChanged(ItemEventarg0){ Stringstr=songlist.getSelectedItem(); playsong.stop(); for(inti=0;i<name.length;i++) if(str==name[i]) { j=i; break; } Yu.run(); } publicvoidrun(){ playsong=song[j];//播放狀態(tài)為播放時 playsong.play();//播放選定歌曲 playname=name[j]; if(loopbutton==true) { playsong.loop();//循環(huán)播放選定歌曲 songname.setText("循環(huán)播放:"+playname); } else songname.setText("正在播放:"+playname); songlist.select(j);//播放列表中選定播放歌曲項目 play.setIcon(newImageIco
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 瑜伽系統(tǒng)提升課程設計
- 消防安全小班課程設計
- 2025年山東濱州醫(yī)學院公開招聘工作人員24人管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東淄博張店區(qū)招聘首批城鄉(xiāng)公益性崗位人員700人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東淄博臨淄區(qū)事業(yè)單位招聘工作人員75人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東濟南平陰縣教體事業(yè)單位招聘110人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2024年海鮮運輸保溫協(xié)議-確保鮮活產(chǎn)品品質(zhì)
- 物理降溫技術課程設計
- 2025年山東德州市寧津惠寧投資控股集團限公司招聘21人管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東嵐山區(qū)事業(yè)單位招聘擬聘用人員(第二批)管理單位筆試遴選500模擬題附帶答案詳解
- GB/T 44979-2024智慧城市基礎設施緊湊型城市智慧交通
- 北師大版七年級上冊數(shù)學期末考試試題附答案
- 理論力學知到智慧樹章節(jié)測試課后答案2024年秋浙江大學
- 管理英語1-001-國開機考復習資料
- 《血管活性藥物靜脈輸注護理》團體標準解讀
- 機器學習-梯度下降法
- 期末綜合測試卷(試題)-2024-2025學年四年級上冊數(shù)學人教版
- 浙江省學軍、鎮(zhèn)海等名校2025屆高考數(shù)學押題試卷含解析
- 個人消費貸款保證合同模板
- 黑龍江省哈爾濱市2023-2024學年七年級上學期期末統(tǒng)考學業(yè)水平調(diào)研測試語文試卷(解析版)
- 社工個人工作述職報告
評論
0/150
提交評論