版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
//程序所所用到的的各种程程序包imporrtjjavaa.awwt.BBordderLLayoout;;imporrtjjavaa.awwt.CChecckbooxMeenuIItemm;imporrtjjavaa.awwt.CColoor;imporrtjjavaa.awwtxpponeent;;imporrtjjavaa.awwt.CConttainner;;imporrtjjavaa.awwt.FFileeDiaalogg;imporrtjjavaa.awwt.FFontt;imporrtjjavaa.awwt.FFonttMettriccs;imporrtjjavaa.awwt.GGrapphiccs;imporrtjjavaa.awwt.MMenuu;imporrtjjavaa.awwt.MMenuuBarr;imporrtjjavaa.awwt.MMenuuIteem;imporrtjjavaa.awwt.eevennt.AActiionEEvennt;imporrtjjavaa.awwt.eevennt.AActiionLListteneer;imporrtjjavaa.awwt.eevennt.IItemmEveent;;imporrtjjavaa.awwt.eevennt.IItemmLisstenner;;imporrtjjavaa.awwt.eevennt.WWinddowAAdappterr;imporrtjjavaa.awwt.eevennt.WWinddowEEvennt;imporrtjjavaax.mmediia.CConttrolllerrClooseddEveent;;imporrtjjavaax.mmediia.CConttrolllerrEveent;;imporrtjjavaax.mmediia.CConttrolllerrLisstenner;;imporrtjjavaax.mmediia.EEndOOfMeediaaEveent;;imporrtjjavaax.mmediia.GGainnConntrool;imporrtjjavaax.mmediia.MManaagerr;imporrtjjavaax.mmediia.MMediiaLoocattor;;imporrtjjavaax.mmediia.NNoPllayeerExxcepptioon;imporrtjjavaax.mmediia.PPlayyer;;imporrtjjavaax.mmediia.PPreffetcchCoomplleteeEveent;;imporrtjjavaax.mmediia.RReallizeeCommpleeteEEvennt;imporrtjjavaax.mmediia.TTimee;imporrtjjavaax.sswinng.JJFraame;;//本程序序对应的的类;classsMeediaaPlaayerr exteendssJFFramme impllemeentssAcctioonLiisteenerr,CConttrolllerrLisstenner,,IttemLListteneer{{ //MeediaaPlaayerr类的变变量成员员的声明明; //JMMF提供供的播放放器对象象; Playyerplaayerr; Compponeentvc,,ccc,ggcc;; GainnConntroolggc; //fiirstt值用来来控制在在刚开始始程序时时显示一一幅欢迎迎界面;;looop用以以标记是是否循环环播放;; boolleannfiirstt=truue,looop==faalsee; //设立立一个字字符串记记录当前前打开文文件的路路径 StriingcurrrenntDiirecctorry; MediiaPllayeer(SStriingtittle)){ supeer(ttitlle);;//利用用一个aadappterr实现对对用户点点击窗口口系统菜菜单的关关闭按钮钮 //时时的响应应; addWWinddowLListteneer(nnewWinndowwAdaapteer()){ publlicvoiidwwinddowCClossingg(WiindoowEvventte)){ //调用用dissposse以执执行wiindoowClloseed dispposee();; } publlicvoiidwwinddowCClossed((WinndowwEveente){ if((plaayerr!==nuull)) playyer..cloose((); Systtem..exiit(00); } }); //调用用设置程程序菜单单栏的方方法成员员完成菜菜单的布布置 setuupMeenu((); setSSizee(4000,4000); setVVisiiblee(trrue)); } //本方方法用以以设置程程序菜单单栏 publlicvoiidssetuupMeenu((){{ //设置置一个菜菜单 Menuuf=nnewMennu(""文件")); //往设设置的菜菜单种添添加菜单单项MenuIItemmmii=newwMeenuIItemm("打打开")); mi.aaddAActiionLListteneer(tthiss); f.addd(mmi);; f.adddSeeparratoor()); ChecckbooxMeenuIItemmcbbmi=nnewCheeckbboxMMenuuIteem(""循环",,faalsee); cbmii.adddIttemLListteneer(tthiss); f.addd(ccbmii); f.adddSeeparratoor()); mi==neewMMenuuIteem(""退出")); mi.aaddAActiionLListteneer(tthiss); f.addd(mmi);; Menuul=nnewMennu(""播放列列表")); Menuuc=nnewMennu(""播放控控制")); MenuuIteemmmovee=newwMeenuIItemm("播播放")); movee.adddAcctioonLiisteenerr(thhis)); c.addd(mmovee); c.adddSeeparratoor()); MenuuIteemppausse==neewMMenuuIteem(""暂停")); pausse.aaddAActiionLListteneer(tthiss); c.addd(ppausse);; c.adddSeeparratoor()); MenuuIteemsstopp=newwMeenuIItemm("停停止")); stopp.adddAcctioonLiisteenerr(thhis)); c.addd(sstopp); c.adddSeeparratoor()); //设置置一个菜菜单栏 MenuuBarrmbb=newwMeenuBBar(();//将设置置的菜单单依次加加入程序序的菜单单栏中去去 mb.aadd((f);; mb.aadd((c);; mb.aadd((l);; //将构构造完成成的菜单单栏交给给当前程程序的窗窗口; setMMenuuBarr(mbb); } //事件件响应成成员;捕捕捉发送送到本对对象的各各种事件件; publlicvoiidaactiionPPerfformmed((ActtionnEveente){ //设一一个字符符串用于于暂存打打开的媒媒体文件件的路径径; Striingcuffilee,sellcecctfiile;; if((e.ggetAActiionCCommmandd()..equualss("退退出"))){{ //调调用diispoose以以便执行行winndowwCloosedd dispposee();; retuurn;; } //次事事件表明明用户选选择了""播放"菜单命命令; //如果果当前有有一个文文件可以以播放则则执行播播放命令令; if((e.ggetAActiionCCommmandd()..equualss("播播放"))){{ if((plaayerr!==nuull)){ playyer..staart((); } retuurn;; }//如果当当前正在在播放某某一文件件,则执执行暂停停; if((e.ggetAActiionCCommmandd()..equualss("暂暂停"))){{ if((plaayerr!==nuull)){ playyer..stoop()); } retuurn;; } //次事事件表明明用户选选择了""播放"菜单命命令; //如果果当前有有一个文文件可以以播放则则执行播播放命令令; if((e.ggetAActiionCCommmandd()..equualss("停停止"))){{ if((plaayerr!==nuull)){playeer.sstopp();; playyer..settMeddiaTTimee(neewTTimee(0))); } retuurn;; } //用户户选择要要播放的的媒体文文件 if((e.ggetAActiionCCommmandd()..equualss("打打开"))){{ FileeDiaaloggfdd=newwFiileDDiallog((thiis,"打开开媒体文文件",,FiileDDiallog..LOAAD);;fd.seetDiirecctorry(ccurrrenttDirrecttoryy); fd.sshoww();; //如如果用户户放弃选选择文件件,则返返回 if((fd..gettFille())===nuull)) retuurn;; //保存存了所选选文件的的名称及及其全路路径名称称已被稍稍后使用用 //同时时设置当当前文件件夹路径径 selccecttfille==fdd.geetFiile((); currrenttDirrecttoryy=fd..gettDirrecttoryy();; cufiile=ccurrrenttDirrecttoryy+sellcecctfiile;; //将用用户选择择的文件件作为一一个菜单单项加入入播放列列表该菜菜单项""名为"该文件件名; //被点点击后给给出的命命令串是是该文件件的全路路径名 MenuuIteemmmi==neewMMenuuIteem(sselccecttfille);; mi.ssetAActiionCCommmandd(cuufille);; MenuuBarrmbb=gettMennuBaar()); Menuum=mmb.ggetMMenuu(2)); mi.aaddAActiionLListteneer(tthiss); m.addd(mmi);; }ellse{ //程序序逻辑运运行到此此表示用用户选择择了一个个"播放列列表"中的媒媒体文件件 //此时时可以通通过如下下动作获获得该文文件的全全路径名名; cufiile=ee.geetAcctioonCoommaand((); selccecttfille==cuufille; } //如果果已存在在一个播播放器,则则先将其其关闭,稍稍后重新新创建 //创建建播放器器时需要要捕捉一一些异常常; if((plaayerr!==nuull)) playyer..cloose((); try{ playyer=MManaagerr.crreattePllayeer(nnewMeddiaLLocaatorr("ffilee:"+ccufiile))); }caatchh(jjavaa.ioo.IOOExccepttionne22){{ Systtem..outt.prrinttln((e2)); retuurn;; }caatchh(NNoPllayeerExxcepptioonee2){ Systtem..outt.prrinttln(("不能能找到播播放器..");; retuurn;; } if((plaayerr===nuull)){ Systtem..outt.prrinttln(("无法法创建播播放器..");; retuurn;; } firsst==faalsee; setTTitlle(sselccecttfille);; //设置置处理播播放控制制器实际际的对象象; playyer..adddConntroolleerLiisteenerr(thhis)); playyer..preefettch((); }//因为实实现了""ConntroolleerLiisteenerr"接口口,本方方法用于于处理媒媒体播放放器传来来的事件件; publlicvoiidcconttrolllerrUpddatee(CoontrrolllerEEvenntee){{ Conttainnertaiinerr=gettConntenntPaane((); //调调用pllayeer.cclosse())时ConntroolleerClloseedEvventt事件出出现。 //如如果存在在视觉部部件,则则该部件件应该拆拆除(为为一致起起见, //我我们对控控制面板板部件也也执行同同样的操操作下一一次需要要时再构构造) if((eiinsttancceoffCoontrrolllerCClossedEEvennt){ if((vc!=nulll){ remoove((vc)); vc==nuull;; } if((cc!=nulll){ remoove((cc)); cc==nuull;; } retuurn;; } //在播播放结束束时,将将播放指指针置为为文件之之首,如如果设定定了循环环播放,则则再次启启动播放放器; if((eiinsttancceoffEnndOffMeddiaEEvennt){ playyer..settMeddiaTTimee(neewTTimee(0))); if((looop){ playyer..staart((); } retuurn;; } //PrrefeetchhCommpleeteEEvennt事件件发生后后调用sstarrt,正正式启动动播放 if((eiinsttancceoffPrrefeetchhCommpleeteEEvennt){ playyer..staart((); retuurn;; }//本事件件表示由由于用于于播放的的资源已已经确定定;此时时要将媒媒体的图图形coonmoopneent //(如如果有)显显示出来来,同时时将播放放器pllayeer的控控制器显显示到窗窗口里;; if((eiinsttancceoffReealiizeCComppletteEvventt){{ //如果果媒体中中有图像像,将对对应图像像commponnentt载入窗窗体; vc==pllayeer.ggetVVisuualCCompponeent((); if((vc!=nulll) tainner..addd(vcc,BBordderLLayoout..CENNTERR); //将对对应控制制器coompoonennt载入入窗体;; cc==pllayeer.ggetCConttrollPannelCCompponeent((); cc.ssetBBackkgrooundd(Coolorr.BLLUE)); if((cc!=nulll) tainner..addd(ccc,BBordderLLayoout..SOUUTH)); //有一一些特殊殊媒体在在播放时时提供另另外的控控制手段段,将该该控制器器一并加加入窗口口; gc==pllayeer.ggetGGainnConntrool()); gcc=ggc.ggetCConttrollCommponnentt();; if((gccc!==nuull)) tainner..addd(gccc,BorrderrLayyoutt.NOORTHH); //根据据媒体文文件中是是否有图图像,设设定相应应的窗口口大小 if((vc!=nulll){ packk();; retuurn;; }ellse{ setSSizee(3000,75)); setVVisiiblee(trrue)); retuurn;; } } } //菜单单状态改改变事件件的响应应函数;; publlicvoiidiitemmStaateCChanngedd(IttemEEvenntee){{ loopp=!looop;; } //不执执行背景景清除操操作,以以免控制制面板部部件闪烁烁 //同时时使得本本程序在在用鼠标标拖动窗窗口时存存在一些些没有及及时重绘绘的情况况,有待待改进 publlicvoiiduupdaate((Graaphiicsg){ painnt(gg); } //本类类的maain函函数,其其中构造造了本类类的一个个实例;; publlicstaaticcvooidmaiin(SStriing[[]aargss){{ newMeddiaPPlayyer(("简单单媒体播播放器""); } publlicvoiidppainnt(GGrapphiccsgg){{ //调调用超类类Fraame的的paiint(()方法法,该ppainnt())方法将将调用FFramme包含含的各个个容器 //和和部件(包包括控制制面板部部件)的的paiint(()方法法。 supeer.ppainnt(gg); //以下下代码实实现了在在开启程程序之初初显示欢欢
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建设申请报告范文(6篇)
- 社区的社会实践调查报告
- 政治必修四教案8篇
- 广东省广州市2024−2025学年高二上学期10月月考 数学试卷含答案
- 江西省宜春市(2024年-2025年小学五年级语文)统编版摸底考试(下学期)试卷及答案
- 二年级语文上册三单元教案
- 编制说明-《企业研发管理体系建设指南(征求意见稿)》
- 上海市市辖区(2024年-2025年小学五年级语文)人教版能力评测((上下)学期)试卷及答案
- 上海市县(2024年-2025年小学五年级语文)人教版竞赛题(上学期)试卷及答案
- 雨水回收系统技术规格书
- 南开大学博士考试试题-生物化学
- 村级财务培训课件
- 二级安全教育考试卷及答案
- 声光影的内心感动:电影视听语言学习通章节答案期末考试题库2023年
- 绿色物流阶段测试试题及答案
- 进口中药资质要求及申报手续
- 新时代高职英语(基础模块)Unit1
- 初中研究性学习报告(通用17篇)
- 人教版九年级数学下册 (相似三角形的判定)相似课件(第3课时)
- MBTI性格测评-课件
- 口腔牙体牙髓病例展示
评论
0/150
提交评论