收藏 分享(赏)

Java程序设计课程设计报告音乐播放器.doc

上传人:精品资料 文档编号:8397149 上传时间:2019-06-24 格式:DOC 页数:9 大小:40.54KB
下载 相关 举报
Java程序设计课程设计报告音乐播放器.doc_第1页
第1页 / 共9页
Java程序设计课程设计报告音乐播放器.doc_第2页
第2页 / 共9页
Java程序设计课程设计报告音乐播放器.doc_第3页
第3页 / 共9页
Java程序设计课程设计报告音乐播放器.doc_第4页
第4页 / 共9页
Java程序设计课程设计报告音乐播放器.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、Java 及 Java web 应用开发实验报告设计题目: Java 音乐播放器 专 业 计算机信息管理 班 级 1 班 学 号 姓 名 2014 年 12 月 24 日import javax.media.ControllerEvent; import javax.media.ControllerListener; import javax.media.EndOfMediaEvent; import javax.media.PrefetchCompleteEvent; import javax.media.RealizeCompleteEvent; import javax.media.*;

2、 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MediaPlayer extends JFrame implements ActionListener, ItemListener, ControllerListener String title; Player player; boolean first = true, loop = false; Component vc, cc; String currentDirectory=null; / 构造函数,其中包括了设置响应窗口事件

3、的监听器。 MediaPlayer(String title) super(title); /* 关闭按钮的实现。 。 */ addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(); public void windowClosed(WindowEvent e) if (player != null) player.close(); System.exit(0); ); / 调用程序菜单栏的方法成员完成菜单的布置 setupMenu(); setSize(400, 400)

4、; setVisible(true); / 本方法用以设置程序菜单栏 public void setupMenu() / 设置一个菜单 Menu f = new Menu(“文件“); / 往设置的菜单添加菜单项 MenuItem mi = new MenuItem(“打开“); f.add(mi); mi.addActionListener(this); f.addSeparator(); CheckboxMenuItem cbmi = new CheckboxMenuItem(“循环“, false); cbmi.addActionListener(this); f.add(cbmi);

5、f.addSeparator(); MenuItem ee = new MenuItem(“退出“); ee.addActionListener(this); f.add(ee); f.addSeparator(); Menu l = new Menu(“播放列表“); Menu c = new Menu(“播放控制 “); MenuItem move = new MenuItem(“播放“); move.addActionListener(this); c.add(move); c.addSeparator(); MenuItem pause = new MenuItem(“暂停“); pa

6、use.addActionListener(this); c.add(pause); c.addSeparator(); MenuItem stop = new MenuItem(“停止“); stop.addActionListener(this); c.add(stop); c.addSeparator(); / 设置一个菜单栏 MenuBar mb = new MenuBar(); mb.add(f); mb.add(c); mb.add(l); / 将构造完成的菜单栏交给当前程序的窗口; setMenuBar(mb); / 动作时间响应成员;捕捉发送到本对象的各种事件; public

7、void actionPerformed(ActionEvent e) / TODO Auto-generated method stub String cufile, selectfile, currentDirectory; if (e.getActionCommand().equals(“退出“) / 调用 dispose 以便执行 windowClosed dispose(); return; / 此事表明拥护选择了“播放”命令; / 如果当前有一个文件可以播放则执行播放命令; if (e.getActionCommand().equals(“播放“) if (player != nu

8、ll) player.start(); return; / 如果当前正在播放某一文件,则执行暂停; if (e.getActionCommand().equals(“暂停“) if (player != null) player.stop(); return; / 停止命令的响应; if (e.getActionCommand().equals(“停止“) if (player != null) player.stop(); player.setMediaTime(new Time(0); return; / 用户选择要播放的媒体文件 if (e.getActionCommand().equa

9、ls(“打开“) FileDialog fd = new FileDialog(this, “打开媒体文件“, FileDialog.LOAD); / fd.setDirectory(currentDirectory); fd.setVisible(true); / 如果用户放弃选择文件,则返回 if (fd.getFile() = null) return; / 保存了所选文件的名称及其路径名称已被稍后使用 / 同时设置当前文件夹路径 selectfile = fd.getFile(); currentDirectory = fd.getDirectory(); cufile = curre

10、ntDirectory + selectfile; / 将用户选择的文件作为一个菜单项加入播放列表,该菜单项名为该文件名; / 被点击后给出的命令串是该文件的全路径名 MenuItem mi = new MenuItem(selectfile); mi.setActionCommand(cufile); MenuBar mb = getMenuBar(); Menu m = mb.getMenu(2); mi.addActionListener(this); m.add(mi); else / 程序逻辑运行到次表示用户选择了一个“播放列表”中的媒体文件 / 此时可以通过如下动作获得该文件的全路

11、径名 cufile = e.getActionCommand(); selectfile = cufile; / 如果存在一个播放器,则先将其关闭,稍后再重新创建 / 创建播放器时需要捕捉一些异常 if (player != null) player.close(); try player = Manager.createPlayer(new MediaLocator(“file:“ + cufile); catch (Exception e2) System.out.println(e2); return; /* * catch(NoPlayerException e2) System.ou

12、t.println(“不能找到播放器“); * return ; */ if (player = null) System.out.println(“无法创建播放器“); return; first = false; setTitle(selectfile); / 设置处理播放控制器实际的对象; /*/ player.addControllerListener(this); player.prefetch(); / 菜单状态改变事件的响应函数; public void itemStateChanged(ItemEvent arg0) / TODO Auto-generated method s

13、tub public static void main(String args) / TODO Auto-generated method stub new MediaPlayer(“播放器“); / 调用绘图函数进行界面的绘制 / public void update() / / 绘图函数成员 /public void paint(Graphics g) / public void controllerUpdate(ControllerEvent e) / TODO Auto-generated method stub Container tainer = getContentPane();

14、 / 调用 player.close()时 ControllerClosedEvent 事件出现 / 如果存在视觉部件,则该部件应该拆除(为了一致起见,我们对控制面版部件也执行同样的操作,下一次需要时再构造) if (e instanceof ControllerClosedEvent) if (vc != null) remove(vc); vc = null; if (cc != null) remove(cc); cc = null; / 播放结束时,将播放指针置于文件之首,如果设定了循环播放,则再次启动播放器; if (e instanceof EndOfMediaEvent) pla

15、yer.setMediaTime(new Time(0); if (loop) player.start(); return; / PrefetchCompletEvent 事件发生后调用 start,正式启动播放 if (e instanceof PrefetchCompleteEvent) player.start(); return; / 本事件表示由于播放的资源已经确定;此时要将媒体的图形 conmopnent / 如果有显示出来,同时将播放器 player 的控制显示到窗口里; if (e instanceof RealizeCompleteEvent) / 如果媒体中有图像,将对应

16、图像 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;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报