您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > Java程序设计课程设计报告音乐播放器
..《Java及Javaweb应用开发》实验报告设计题目:Java音乐播放器专业计算机信息管理班级1班学号姓名2014年12月24日..importjavax.media.ControllerEvent;importjavax.media.ControllerListener;importjavax.media.EndOfMediaEvent;importjavax.media.PrefetchCompleteEvent;importjavax.media.RealizeCompleteEvent;importjavax.media.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassMediaPlayerextendsJFrameimplementsActionListener,ItemListener,ControllerListener{Stringtitle;Playerplayer;booleanfirst=true,loop=false;Componentvc,cc;StringcurrentDirectory=null;//构造函数,其中包括了设置响应窗口事件的监听器。MediaPlayer(Stringtitle){super(title);/*关闭按钮的实现。。*/addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){dispose();}publicvoidwindowClosed(WindowEvente){if(player!=null)player.close();System.exit(0);}});//调用程序菜单栏的方法成员完成菜单的布置..setupMenu();setSize(400,400);setVisible(true);}//本方法用以设置程序菜单栏publicvoidsetupMenu(){//设置一个菜单Menuf=newMenu(文件);//往设置的菜单添加菜单项MenuItemmi=newMenuItem(打开);f.add(mi);mi.addActionListener(this);f.addSeparator();CheckboxMenuItemcbmi=newCheckboxMenuItem(循环,false);cbmi.addActionListener(this);f.add(cbmi);f.addSeparator();MenuItemee=newMenuItem(退出);ee.addActionListener(this);f.add(ee);f.addSeparator();Menul=newMenu(播放列表);Menuc=newMenu(播放控制);MenuItemmove=newMenuItem(播放);move.addActionListener(this);c.add(move);c.addSeparator();MenuItempause=newMenuItem(暂停);pause.addActionListener(this);c.add(pause);c.addSeparator();MenuItemstop=newMenuItem(停止);..stop.addActionListener(this);c.add(stop);c.addSeparator();//设置一个菜单栏MenuBarmb=newMenuBar();mb.add(f);mb.add(c);mb.add(l);//将构造完成的菜单栏交给当前程序的窗口;setMenuBar(mb);}//动作时间响应成员;捕捉发送到本对象的各种事件;publicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubStringcufile,selectfile,currentDirectory;if(e.getActionCommand().equals(退出)){//调用dispose以便执行windowCloseddispose();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.setDirectory(currentDirectory);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;}/**catch(NoPlayerExceptione2){System.out.println(不能找到播放器);*return;}*/if(player==null){System.out.println(无法创建播放器);return;}first=false;setTitle(selectfile);//设置处理播放控制器实际的对象;/**/player.addControllerListener(this);player.prefetch();}//菜单状态改变事件的响应函数;publicvoiditemStateChanged(ItemEventarg0){//TODOAuto-generatedmethodstub}publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubnewMediaPlayer(播放器);}//调用绘图函数进行界面的绘制//publicvoidupdate(){//}//绘图函数成员//publicvoidpaint(Graphicsg){//}..publicvoidcontrollerUpdate(ControllerEvente){//TODOAuto-generatedmethodstubContainertainer=getContentPane();//调用player.close()时ControllerClosedEvent事件出现//如果存在视觉部件,则该部件应该拆除(为了一致起见,我们对控制面版部件也执行同样的操作,下一次需要时再构造)if(einstanceofControllerClosedEvent){if(vc!=null){remove(vc);vc=null;}if(cc!=null){remove(cc);cc=null;}}//播放结束时,将播放指针置于文件之首,如果设定了循环播放,则再次启动播放器;if(einstanceofEndOfMediaEvent){player.setMediaTime(newTime(0));if(loop){player.start();}return;}//PrefetchCompletEvent事件发生后调用start,正式启动播放if(einstanceofPrefetchCompleteEvent){player.start();return;}//本事件表示由于播放的资源已经确定;此时要将媒体的图形conmopnent//如果有显示出来,同时将播放器player的控制显示到窗口里;if(einstanceofRealizeCompleteEvent){//如果媒体中有图像,将对应图像component载入窗体;vc=player.getVisualComponent();if(vc!=null)..tainer.add(vc,BorderLayout.CENTER);//将对应控制器component载入窗体;cc=player.getControlPanelComponent();cc.setBackground(Color.blue);if(cc!=null)tainer.add(cc,BorderLayout.SOUTH);//有一些特殊媒体在播放时提供另外的控制手段,将控制器一并加入窗口;/**gc=player.getGainControl();gcc=gc.getControlComponent();*if(gcc!=null)tainer.add(gcc,BorderLayout.NORTH);*///根据媒体文件中是否有图像,设定相应的窗口大小if(vc!=null){pack();return;}else{setSize(300,75);setVisible(true);return;}}}}..单纯的课本内容,并不能满足学生的需要,通过补充,达到内容的完善教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。
本文标题:Java程序设计课程设计报告音乐播放器
链接地址:https://www.777doc.com/doc-5826909 .html