版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、主類MUSICPLAYER類:importjava.util.*;importjavax.swing.JSlider;importjava.awt.BorderLayout;importjava.awt.FlowLayout;importjava.awt.Point;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.MouseAdapter;importjava.awt.event.MouseEvent;importjava.io.BufferedOutputStr
2、eam;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.ObjectInputStream;importjava.io.ObjectOutputStream;importjava.io.Serializable;importjavax.media.ControllerEvent;importjavax.media.Controller
3、Listener;importjavax.media.EndOfMediaEvent;importjavax.media.Manager;importjavax.media.MediaLocator;importjavax.media.NoPlayerException;importjavax.media.Player;importjavax.media.PrefetchCompleteEvent;importjavax.media.Time;importjavax.swing.ButtonGroup;importjavax.swing.DefaultListModel;importjavax
4、.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JFileChooser;importjavax.swing.JFrame;importjavax.swing.JList;importjavax.swing.JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JRadioButtonMenuItem;impo
5、rtjavax.swing.JScrollBar;importjavax.swing.JScrollPane;importjavax.swing.filechooser.FileNameExtensionFilter;publicclassMusicPlayerimplementsActionListener,Serializable,ControllerListenerprivatestaticfinallongserialVersionUID=1L;privateJFrameframe=null;privateJPanelcontrolPanel=null;privateJButtonbt
6、nPlay=null;privateJButtonbtnPre=null;privateJButtonbtnNext=null;privateJScrollPanelistPane=null;privateJListlist=null;privateDefaultListModellistModel=null;privateJMenuBarmenubar=null;privateJMenumenuFile=null,menuAbout=null,menuMode=null;privateJMenuItemitemOpen,itemOpens,itemExit,itemAbout;private
7、JRadioButtonMenuItemitemSingle,itemSequence,itemRandom;privateListItemcurrentItem=null;privatestaticPlayerplayer=null;privatebooleanisPause=false;privateintmode;privateintcurrentIndex;privateImageIconiconPlay=newImageIcon(d:1.jpg);privateImageIconiconPre=newImageIcon(d:3.jpg);privateImageIconiconNex
8、t=newImageIcon(d:2.jpg);privateImageIconiconPause=newImageIcon(d:4.jpg);publicstaticvoidmain(Stringargs)newMusicPlayer();publicMusicPlayer()init();publicvoidinit()frame=newJFrame();frame.setTitle(音樂播放器“);frame.setSize(400,300);frame.setResizable(false);frame.setLocationRelativeTo(null);frame.setDefa
9、ultCloseOperation(JFrame.EXIT_ON_CLOSE);menubar=newJMenuBar();menuFile=newJMenu(文件);menuAbout=newJMenu(關(guān)于);menuMode=newJMenu(播放模式);itemOpen=newJMenuItem(”添加文件);itemOpens=newJMenuItem(添加文件夾);itemExit=newJMenuItem(退出);itemAbout=newJMenuItem(關(guān)于”);itemOpen.addActionListener(this);itemOpens.addActionList
10、ener(this);itemExit.addActionListener(this);itemAbout.addActionListener(this);itemSequence=newJRadioButtonMenuItem(順序播放);itemSequence.setSelected(true);itemSingle=newJRadioButtonMenuItem(單曲循環(huán)”);itemSequence.addActionListener(this);itemRandom=newJRadioButtonMenultem(”隨機播放);itemRandom.addActionListene
11、r(this);itemSingle.addActionListener(this);ButtonGroupbg=newButtonGroup();bg.add(itemRandom);bg.add(itemSequence);bg.add(itemSingle);menuFile.add(itemOpen);menuFile.add(itemOpens);menuFile.add(itemExit);menuAbout.add(itemAbout);menuMode.add(itemSequence);menuMode.add(itemSingle);menuMode.add(itemRan
12、dom);menubar.add(menuFile);menubar.add(menuAbout);menubar.add(menuMode);frame.setJMenuBar(menubar);frame.setLayout(newBorderLayout();controlPanel=newJPanel();controlPanel.setLayout(newFlowLayout();btnPlay=newJButton(iconPlay);btnPre=newJButton(iconPre);btnNext=newJButton(iconNext);btnPlay.addActionL
13、istener(this);btnPre.addActionListener(this);btnNext.addActionListener(this);controlPanel.add(btnPre);controlPanel.add(btnPlay);controlPanel.add(btnNext);listPane=newJScrollPane();listModel=load();list=newJList(listModel);if(list.getSelectedIndex()=-1&listModel.size()0)currentItem=(ListItem)listMode
14、l.get(0);list.setSelectedIndex(0);currentIndex=0;listPane.getViewport().add(list);list.addMouseListener(newMouseAdapter()publicvoidmouseClicked(MouseEvente)if(e.getClickCount()=2)if(player!=null)player.close();btnPlay.setIcon(iconPlay);currentIndex=list.locationToIndex(e.getPoint();currentItem=(List
15、Item)listModel.get(currentIndex);list.setSelectedIndex(currentIndex);play(););frame.setLayout(newBorderLayout();frame.add(controlPanel,BorderLayout.NORTH);frame.add(listPane,BorderLayout.CENTER);frame.setVisible(true);publicvoidactionPerformed(ActionEvente)if(e.getSource()=itemOpen)/addfilesJFileCho
16、oserjfc=newJFileChooser();FileNameExtensionFilterfilter=newFileNameExtensionFilter(音樂文件,mp3,wav);jfc.setFileFilter(filter);jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);jfc.setMultiSelectionEnabled(true);if(jfc.showOpenDialog(frame)=JFileChooser.APPROVE_OPTION)Filefiles=jfc.getSelectedFiles();fo
17、r(Filef:files)ListItemitem=newListItem(f.getName(),f.getAbsolutePath();listModel.addElement(item);elseif(e.getSource()=itemOpens)/addfilesinadirectoryJFileChooserjfc=newJFileChooser();jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);if(jfc.showOpenDialog(frame)=JFileChooser.APPROVE_OPTION)Fil
18、edirectory=jfc.getSelectedFile();Filefiles=directory.listFiles(newjava.io.FileFilter()publicbooleanaccept(Filef)if(f.getName().toLowerCase().endsWith(.mp3)|f.getName().toLowerCase().endsWith(.wav)returntrue;returnfalse;);for(Filefile:files)ListItemitem=newListItem(file.getName(),file.getAbsolutePath
19、();listModel.addElement(item);save(listModel);elseif(e.getSource()=itemExit)System.exit(0);elseif(e.getSource()=itemAbout)JOptionPane.showMessageDialog(frame,作者:陸鑫);elseif(e.getSource()=btnPlay)/playorpauseplay();elseif(e.getSource()=btnPre)pre();elseif(e.getSource()=btnNext)/nextmusicnext();elseif(
20、e.getSource()=itemSequence)mode=0;elseif(e.getSource()=itemSingle)mode=1;elseif(e.getSource()=itemRandom)mode=2;/playcontrol/*播放*/publicvoidplay()if(btnPlay.getIcon()=iconPlay)if(isPause)player.start();System.out.println(暫停結(jié)束);isPause=false;elsetryplayer=Manager.createPlayer(newMediaLocator(file:+cu
21、rrentItem.getPath();player.addControllerListener(this);/提取媒體內(nèi)容player.prefetch();catch(NoPlayerExceptione1)e1.printStackTrace();catch(IOExceptione1)e1.printStackTrace();btnPlay.setIcon(iconPause);elseplayer.stop();isPause=true;System.out.println(暫停);btnPlay.setIcon(iconPlay);publicvoidnext()if(curren
22、tIndex=listModel.getSize()-1)currentIndex=0;elsecurrentIndex+;currentItem=(ListItem)listModel.get(currentIndex);list.setSelectedIndex(currentIndex);Pointp=list.indexToLocation(currentIndex);JScrollBarjScrollBar=listPane.getVerticalScrollBar();/獲得垂直轉(zhuǎn)動條jScrollBar.setValue(p.y);/設(shè)置垂直轉(zhuǎn)動條位置btnPlay.setIco
23、n(iconPlay);if(player!=null)player.close();isPause=false;play();publicvoidrand()list.setSelectedIndex(int)(Math.random()%(listModel.getSize()-1);Pointp=list.indexToLocation(int)(Math.random()%(listModel.getSize()-1);JScrollBarjScrollBar=listPane.getVerticalScrollBar();jScrollBar.setValue(p.y);btnPla
24、y.setIcon(iconPlay);if(player!=null)player.close();isPause=false;play();publicvoidpre()if(currentIndex=0)currentIndex=listModel.getSize()-1;elsecurrentIndex-;currentItem=(ListItem)listModel.get(currentIndex);list.setSelectedIndex(currentIndex);Pointp=list.indexToLocation(currentIndex);JScrollBarjScr
25、ollBar=listPane.getVerticalScrollBar();/獲得垂直轉(zhuǎn)動條jScrollBar.setValue(p.y);/設(shè)置垂直轉(zhuǎn)動條位置btnPlay.setIcon(iconPlay);if(player!=null)player.close();isPause=false;play();/endplaycontrolpublicDefaultListModelload()Filefile=newFile(list.lst);DefaultListModeldlm=newDefaultListModel();if(file.exists()tryObjectInp
26、utStreamois=newObjectInputStream(newFileInputStream(file);Integersize=(Integer)ois.readObject();if(size!=0)for(inti=0;isize;i+)ListItemitem=(ListItem)ois.readObject();dlm.addElement(item);ois.close();returndlm;catch(FileNotFoundExceptione)e.printStackTrace();catch(IOExceptione)e.printStackTrace();ca
27、tch(ClassNotFoundExceptione)e.printStackTrace();returndlm;publicvoidsave(DefaultListModeldlm)tryObjectOutputStreamoos=newObjectOutputStream(newBufferedOutputStream(newFileOutputStream(list.lst);Integersize=dlm.getSize();oos.writeObject(size);for(inti=0;isize;i+)ListItemitem=(ListItem)dlm.get(i);oos.
28、writeObject(item);oos.close();catch(Exceptione)e.printStackTrace();publicvoidcontrollerUpdate(ControllerEvente)if(einstanceofEndOfMediaEvent)if(mode=0)/順序播放System.out.println(順序播放);next();elseif(mode=1)/單曲循環(huán)System.out.println(”播放結(jié)束”);player.setMediaTime(newTime(0);System.out.println(”單曲循環(huán)”);player.s
29、tart();elseif(mode=2)System.out.println(”隨機播放);rand();return;當(dāng)提取媒體的內(nèi)容結(jié)束/if(einstanceofPrefetchCompleteEvent)System.out.println(開始播放);player.start();return;LISTITEM類importjava.io.Serializable;publicclassListItemimplementsSerializableprivatestaticfinallongserialVersionUID=1L;privateStringname;privateS
30、tringpath;publicListItem()publicListItem(Stringname,Stringpath)=name;this.path=path;publicStringgetName()returnname;publicvoidsetName(Stringname)=name;publicStringgetPath()returnpath;publicvoidsetPath(Stringpath)this.path=path;publicStringtoString()returnname;基于java的音樂播放器的設(shè)計摘要:在信息,技術(shù)高速發(fā)展的今天,多媒體技術(shù)也越來
31、越受到人們的重視。文章對目前使用較多的音樂播放器作出較詳細的比較。通過閱讀多張文獻,分析了一些音樂播放器的功能并考慮了怎樣能實現(xiàn)支持更多格式的音樂文件,怎樣能滿足使用者對播放器的需求。本文主要介紹了一個基于JavaApplet來實現(xiàn)的音樂播放器的設(shè)計。并對系統(tǒng)開發(fā)中涉及到的關(guān)鍵技術(shù)作了探討,簡要分析介紹了Java技術(shù)和Applet的工作原理,最后說明系統(tǒng)需要實現(xiàn)的功能。關(guān)鍵詞:java;Applet;音樂播放器;前言近年來,聽音樂已成為人們生活的一部分,與此同時,音樂播放器以其平易近人的價格也日趨普及,這大大豐富了業(yè)余生活也緩解了工作壓力,但尚有諸多不足之處有待改進日常生活中,我們在聽音時,常
32、感手動操作甚是麻煩且想尋找某個音頻文件須從頭到尾逐個查看,這樣費時費力很是不便。音樂播放器的實現(xiàn)方法,采用口述音樂文件名的方式即可播放指定歌曲文件,避免了繁瑣的查找,亦使其更加人性化,實現(xiàn)了播放器的全自動語音控制。我將來要采用javaApplet的多媒體技術(shù),設(shè)計出一個基于javaApplet的音樂播放器。現(xiàn)在電腦上的音樂播放器百花齊放,以Winamp,F(xiàn)oobar2000,千千靜聽,酷狗和酷我音樂盒最流行。播放器最重要的參數(shù)當(dāng)屬支持的格式了,即使只圖個響,也需要有豐富的格式作為后盾。在此方面,千千靜聽支持多種音頻格式,除了常見的MP3,WMA等,也支持APE,F(xiàn)LAC等無損壓縮格式,它一共支
33、持三十多種音頻格式,是一個比較全能的播放器。Winamp也支持非常多的格式,但對APE格式的支持需要安裝對應(yīng)插件;除音頻格式外,Winamp還支持一些常見的視頻格式,這個功能能為用戶帶來一些方便。Foobar2000支持的格式數(shù)量也差不多,但是對APE的支持仍然需要安裝插件。不過Foobar2000有一個特色功能,它支持直接讀取壓縮包里的音樂文件,從電騾上下載的APE完整碟通常都是打包的,如果用Foobar2000的這個功能就可以不解壓直接聽歌了。相比之下,酷我音樂盒支持的格式就比較單一了,無論是網(wǎng)上搜索還是本地播放歌曲,都僅支持MP3和WMA種格式??峁返谋憩F(xiàn)則稍微好點,除了支持MP3和WM
34、A之外,還支持APE和FLAC格式。而酷我音樂盒,則支持在線MV視頻的播放。在本文中我利用java語言設(shè)計的音樂播放器的功能跟千千靜聽,酷狗和酷我音樂盒,Winamp,F(xiàn)oobar2000的功能差不多,不過利用java設(shè)計的音樂播放器支持的音頻文件格式比它們豐富一點。如:WAP,AIFF,MIDI,AU,RMF等跨平臺功能比較強。1Java技術(shù)Java技術(shù)已經(jīng)成為當(dāng)今Internet應(yīng)用開發(fā)的核心與主流技術(shù)。這一方面是因為java語言具有面向?qū)ο螅梢浦残?強壯性與安全性等優(yōu)良特征,另一方面也由于java技術(shù)對各個層次的分布式應(yīng)用(包括電器設(shè)備的嵌入式計算,桌面計算與企業(yè)級計算)都提供了全面系
35、統(tǒng)的方法與技術(shù)。因此,目前java已經(jīng)從單純的程序設(shè)計語言發(fā)展成為支撐Internet計算的大技術(shù)體系,進入了發(fā)展與應(yīng)用的高級階段。1Ijava語言對于都數(shù)程序設(shè)計語言,其程序運行要么采用編譯執(zhí)行,要么采用解釋執(zhí)行的方式。而java語言的特殊之處在于,程序運行既要經(jīng)過編譯又要進行解釋,如圖1-1所示。首先,java程序由編譯器進行編譯,產(chǎn)生了一種中間代碼,稱為java字節(jié)碼(javabytecodes)。字節(jié)碼是java虛擬機的代碼,是與平臺無關(guān)的中性代碼,因此不能在各種計算機平臺上直接運行,必須在JVM上運行。Java解釋器是JVM的實現(xiàn),它把字節(jié)碼轉(zhuǎn)換為底層平臺的機器碼,使Java程序最終
36、得以運行。無論是Application還是嵌入式在瀏覽器中的Applet,都需要通過解釋器才能運行。圖1-1Java語言的運行1.2Java的特征Java是一種簡單(simple),面向?qū)ο螅╫bjectoriented),分布式(distributed),解釋性(interpreted),健壯(orbust),安全(secure),體系結(jié)構(gòu)中立(architectureneutral),可移植性(portable),高性能(highperformance),多線程(multithreaded),和動態(tài)(dynamic)“的編程語言。1)簡單性:Java語言語法和語義都比較單純,,容易學(xué)習(xí)和使
37、用。2)面向?qū)ο?作為一種面向?qū)ο蟮木幊陶Z言Java不僅最為“純潔”,同時,它對面向?qū)ο蠓椒ǖ闹С肿顬槿?。另外,Java通過抽象類和接口(interface)支持面向的多態(tài)性要求,既一個對外接口,多種內(nèi)部實現(xiàn)。3)分布式特征:Java實現(xiàn)兩種層次上的分布。(1)數(shù)據(jù)分布支持:通過java的URL類Java程序可以訪問網(wǎng)絡(luò)撒謊那個的各類信息資源。訪問方式完全類似于本地文件系統(tǒng)。(2)操作分布支持:java通過嵌在WWW頁面中的Applet(小應(yīng)用程序)將計算從服務(wù)器分布至客戶機。Applet由WWW瀏覽器在客戶端執(zhí)行,從而避免了網(wǎng)絡(luò)擁擠,提高了系統(tǒng)效率。4)java的解釋性:運行Java程序需
38、要解釋器。程序被編譯為成為字節(jié)代碼的Java虛擬機代碼。字節(jié)代碼與機器無關(guān),可以在任何有Java解釋器的機器上運行。5)健壯性:Java提供自動垃圾收集來進行內(nèi)存管理,防止程序員在管理內(nèi)存時容易產(chǎn)生的錯誤。6)安全性:在發(fā)分布式環(huán)境中,安全性是一個十分重要的問題。Java在語言和運行環(huán)境中引入了多級安全措施,其采用的主要安全機制有:(1)內(nèi)存分配及布局由Java運行系統(tǒng)規(guī)定。(2)運行系統(tǒng)執(zhí)行基于數(shù)字簽名技術(shù)的代碼認證,字節(jié)碼驗證與代碼訪問權(quán)限控制的。7)體系結(jié)構(gòu)中立Java語言的設(shè)計不是針對某種具體平臺結(jié)構(gòu)的。8)可移植性Java是迄今為止對可移植性支持最佳的編程語言。Java的最大特點是“
39、一次編程,處處運行”。9)高性能Java語言雖然采取字節(jié)碼解釋運行方式,但由于字節(jié)碼與機器碼十分接近,使得字節(jié)碼到機器碼的轉(zhuǎn)換十分快捷。10)多線性:線程是比進程更小,更為經(jīng)濟的并發(fā)執(zhí)行單位,它與進程的主要差異在于它不擁有單獨的資源,而是與其他線程共享所屬進程的資源。11)動態(tài)性:Java的動態(tài)性是其面向?qū)ο笤O(shè)計的延伸。2JavaApplet概念A(yù)pplet(小應(yīng)用程序)是Java與Web相結(jié)合而引入的一種重要的Java應(yīng)用形式,它不僅使Web頁具有動畫,聲音,圖像和其他特殊效果,更重要的是可以使Web頁能夠與用戶動態(tài)進行交互,接收用戶的輸入,然后根據(jù)用戶的輸入作出不同的反應(yīng)。它是能夠嵌入到H
40、TML頁面中,并能夠在瀏覽器中運行的Java類。Applet自身不能運行,必須嵌入在其他應(yīng)用程序(例如Web瀏覽器或JavaAppletviewer)中運行。Applet類提供了從制定的URL獲取圖像和聲音的方法,使Applet可以很方便地實現(xiàn)多媒體功能。當(dāng)圖像數(shù)據(jù)通過網(wǎng)絡(luò)下載時,由于受網(wǎng)絡(luò)帶寬等因素的限制,用戶在瀏覽器中看到的一般是漸漸增長的圖像顯示過程。獲取指定URL上的聲音數(shù)據(jù),返回一個類型為AudioClip的對象,通過該對象可以實現(xiàn)聲音演播。21Applet類生成Applet要創(chuàng)建Applet類的子類,一個Applet的運行為框架由Applet類來決定的。Applet類提供了從指定的
41、URL獲取圖像和聲音的方法,使Applet可以很方便地實現(xiàn)多媒體功能的。要編寫Applet小應(yīng)用程序,就必須繼承Applet類,并覆蓋其中必要的方法。Applet類為applet提供了基本的框架結(jié)構(gòu)是applet和其運行環(huán)境之間的標準接口。Web瀏覽器能夠自動調(diào)用下列方法來控制applet小應(yīng)用程序的生成和運行:Qinit方法QStart方法Qstop方法destroy方法3設(shè)計本系統(tǒng)要用到的Java關(guān)鍵技術(shù)3.1在Applet中播放聲音的方法和步驟在Java.Applet包中的Applet類和AudioClip接口提供了播放聲音的基本支持。以前計算機存儲聲音文件的格式有許多,目前Java只支
42、持一種聲音文件格式有.au,.mid,.wav等。對于其他格式的文件,可以用相應(yīng)地工具軟件將它們轉(zhuǎn)換為.au或.mid等Java支持的文件。在Applet中播放聲音文件有兩種方法:(1)在Java的API中,Applet類提供了一個方法play(),它可以直接根據(jù)URL地址來播放聲音。這個方法指定如下:Publicvoidplay(URLurl);Publicvoidplay(URLurl,stringsoundFile);在第一種方法的定義中,參數(shù)url是保存聲音文件的絕對URL地址,即統(tǒng)一資源定位,它指定Web網(wǎng)上的一個聲音文件;在第二種方法定義中,參數(shù)URL是保存聲音文件的基地址,而參數(shù)
43、soundFile是聲音文件的文件名。如果聲音文件與Applet的HTML文件在相同的目錄下,則可以通過使用getCodeBase()方法來獲得該聲音文件的基地址。如果Applet本身的URL地址為“http/www.T/pro/,貝V語句:Play(gatCodeBase(),“space.au”);等同于語句:Play(“http/ HYPERLINK /pro/%e2%80%9d,%e2%80%9cspace.au%e2%80%9d)%ef%bc%9b /pro/”,“space.au”);在程序編寫過程中,若使用第一種方法定義,則將程序由一個服務(wù)器轉(zhuǎn)移到另一服務(wù)器上或從一個目錄轉(zhuǎn)移到另
44、一個目錄下時,必須改變源代碼中的URL地址:若使用第二種方法定義,即使用getCodeBase()方法來定位資源文件,則將程序由一個服務(wù)器轉(zhuǎn)移到另一個服務(wù)器或從一個目錄轉(zhuǎn)移到另一個目錄下時,不必改變源代碼中的URL地址,而只需將聲音文件與播放他的Java文件放在同一目錄下即可。Play()方法只能進行簡單的播放,只能一次敬愛那個聲音文件播放完,沒有停止和連續(xù)播放的功能,所以,一般編寫播放聲音的程序時不采用此方法。(2)利用Java中的AudioClip類對象播放聲音文件。AudioClip類提供了兩種獲取聲音數(shù)據(jù)的方法,定義如下:AudioClipgetAudioClip(URLurl);Au
45、dioClipgetAudioClip(URLurl,StringsoundFile);它們的參數(shù)含義與以上相同。使用時可按如下步驟。Q)聲明一個AudioClip類的對象,如:AudioClipaudio;Q)使用getAudioClip()方法為AudioClip類的對象獲得句柄,如:aud=getAudioClip(getCodeBase(),“space.au”);或一次完成,如:AudioClipaud=getAudioClip(getCodeBase(),“space.au”);或:AudioClipaud=getAudioClip(“HTTP/pro/”,“space.au”使用
46、這種方法創(chuàng)建聲音播放程序文件的一般步驟如下:Q創(chuàng)建一個AudioClip對象。Q裝入聲音文件到AudioClip對象。一次播放或者不停地循環(huán)播放聲音。Q停止播放。Java.applet.AudioClip類提供了3個方法實現(xiàn)對聲音文件播放的控制,它們分別是play(),loop()和stop()。在這個設(shè)計過程中使用了java.applet.AudioClip類中的play()方法播放一個載入的聲音文件;使用loop()方法循環(huán)地播放該聲音文件,并且使用stop()方法來停止播放這個聲音文件。方法star()和stop()是Applet類中定義的方法,該程序繼承了Applet類,并重新定義了這
47、兩個方法,這一過程稱做方法的覆蓋。這兩個方法是由操作系統(tǒng)自動調(diào)用的。當(dāng)程序啟動時兩個方法,star()方法由操作系統(tǒng)自動調(diào)用,star()方法在運行時通過AudioClip對象aud調(diào)用loop()方法,實現(xiàn)對聲音的循環(huán)播放。當(dāng)程序停止運行時,Applet類中的stop()方法被自動調(diào)用,stop()方法運行時通過AudioClip對象aud調(diào)用AudioClip中的stop()方法來終止聲音文件的播放。3.2創(chuàng)建播放器的圖形用戶界面所需的控件3.2.1菜單欄與菜單在程序中創(chuàng)建菜單是最常用圖形的用戶界面之一。Java語言中,與菜單相關(guān)類有5個:JMenuBar,JMenultem,JCheckBoxMenultem和JRadioButtonMenul
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年長空探照燈項目可行性研究報告
- 二零二五年婚禮攝影攝像行業(yè)信用評價體系合同3篇
- 電力線路施工合同范本
- 個人車位出租合同
- 2024年硒鼓項目可行性研究報告
- 2024年立體浮雕畫項目可行性研究報告
- 宣傳物料制作合同范本
- 2025版酒店跨界合作經(jīng)營協(xié)議書3篇
- 2025年度電子產(chǎn)品oem質(zhì)量檢測合同范本共
- 2025至2030年中國橫編織機行業(yè)投資前景及策略咨詢研究報告
- 仿寫詩歌-鄉(xiāng)愁
- 三年級《稻草人》閱讀測試試題附答案
- 心理健康與職業(yè)生涯(第一章)課件
- DB-T 29-202-2022 天津市建筑基坑工程技術(shù)規(guī)程
- 粵教版三年級勞動與技術(shù)全冊教案教學(xué)設(shè)計
- 越努力越幸運商務(wù)紅色工作匯報PPT模板
- (完整版)外科學(xué)名詞解釋【完整版】
- 永磁同步電機控制系統(tǒng)設(shè)計與仿真畢業(yè)論文
- 傳感器與檢測技術(shù)課后習(xí)題和答案(陳杰)
- 藏歷新年ppt模版課件
- 基于PLC的自動門控制系統(tǒng)
評論
0/150
提交評論