收藏 分销(赏)

中国银行多媒体会议系统设计方案模板.doc

上传人:人****来 文档编号:2873778 上传时间:2024-06-07 格式:DOC 页数:17 大小:40.04KB 下载积分:8 金币
下载 相关 举报
中国银行多媒体会议系统设计方案模板.doc_第1页
第1页 / 共17页
中国银行多媒体会议系统设计方案模板.doc_第2页
第2页 / 共17页


点击查看更多>>
资源描述
中国银行多媒体会议系统设计方案 //程序所用到多种程序包 import java.awt.BorderLayout; import java.awt.CheckboxMenuItem; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.FileDialog; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.media.ControllerClosedEvent; import javax.media.ControllerEvent; import javax.media.ControllerListener; import javax.media.EndOfMediaEvent; import javax.media.GainControl; import javax.media.Manager; import javax.media.MediaLocator; import javax.media.NoPlayerException; import javax.media.Player; import javax.media.PrefetchCompleteEvent; import javax.media.RealizeCompleteEvent; import javax.media.Time; import javax.swing.JFrame; //本程序对应类; class MediaPlayer extends JFrame implements ActionListener, ControllerListener, ItemListener { //MediaPlayer类变量组员申明; //JMF提供播放器对象; Player player; Component vc, cc, gcc; GainControl gc; //first值用来控制在刚开始程序时显示一幅欢迎界面;loop用以标识是否循环播放; boolean first = true, loop = false; //设置一个字符串统计目前打开文件路径 String currentDirectory; MediaPlayer(String title) { super(title); // 利用一个adapter实现对用户点击窗口系统菜单关闭按钮 // 时响应; addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { //调用dispose以实施windowClosed dispose(); } public void windowClosed(WindowEvent e) { if (player != null) player.close(); System.exit(0); } }); //调用设置程序菜单栏方法组员完成菜单部署 setupMenu(); setSize(400, 400); setVisible(true); } //本方法用以设置程序菜单栏 public void setupMenu() { //设置一个菜单 Menu f = new Menu("文件"); //往设置菜单种添加菜单项 MenuItem mi = new MenuItem("打开"); mi.addActionListener(this); f.add(mi); f.addSeparator(); CheckboxMenuItem cbmi = new CheckboxMenuItem("循环", false); cbmi.addItemListener(this); f.add(cbmi); f.addSeparator(); mi = new MenuItem("退出"); mi.addActionListener(this); f.add(mi); Menu l = new Menu("播放列表"); Menu c = new Menu("播放控制"); MenuItem move = new MenuItem("播放"); move.addActionListener(this); c.add(move); c.addSeparator(); MenuItem pause = new MenuItem("暂停"); pause.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 void actionPerformed(ActionEvent e) { //设一个字符串用于暂存打开媒体文件路径; String cufile , selcectfile; if (e.getActionCommand().equals("退出")) { // 调用dispose方便实施windowClosed dispose(); 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(new Time(0)); } return; } //用户选择要播放媒体文件 if (e.getActionCommand().equals("打开")) { FileDialog fd = new FileDialog(this, "打开媒体文件", FileDialog.LOAD); fd.setDirectory(currentDirectory); fd.show(); // 假如用户放弃选择文件,则返回 if (fd.getFile() == null) return; //保留了所选文件名称及其全路径名称已被稍后使用 //同时设置目前文件夹路径 selcectfile = fd.getFile(); currentDirectory = fd.getDirectory(); cufile = currentDirectory + selcectfile; //将用户选择文件作为一个菜单项加入播放列表该菜单项"名为"该文件名; //被点击后给出命令串是该文件全路径名 MenuItem mi = new MenuItem(selcectfile); mi.setActionCommand(cufile); MenuBar mb = getMenuBar(); Menu m = mb.getMenu(2); mi.addActionListener(this); m.add(mi); } else { //程序逻辑运行到此表示用户选择了一个"播放列表"中媒体文件 //此时能够经过以下动作取得该文件全路径名; cufile = e.getActionCommand(); selcectfile = cufile; } //假如已存在一个播放器,则先将其关闭,稍后重新创建 //创建播放器时需要捕捉部分异常; if (player != null) player.close(); try { player = Manager.createPlayer(new MediaLocator("file:" + cufile)); } catch (java.io.IOException e2) { System.out.println(e2); return; } catch (NoPlayerException e2) { System.out.println("不能找到播放器."); return; } if (player == null) { System.out.println("无法创建播放器."); return; } first = false; setTitle(selcectfile); //设置处理播放控制器实际对象; player.addControllerListener(this); player.prefetch(); } //因为实现了"ControllerListener"接口,本方法用于处理媒体播放器传来事件; public void controllerUpdate(ControllerEvent e) { Container tainer = getContentPane(); // 调用player.close()时ControllerClosedEvent事件出现。 // 假如存在视觉部件,则该部件应该拆除(为一致起见, // 我们对控制面板部件也实施一样操作下一次需要时再结构) if (e instanceof ControllerClosedEvent) { if (vc != null) { remove(vc); vc = null; } if (cc != null) { remove(cc); cc = null; } return; } //在播放结束时,将播放指针置为文件之首,假如设定了循环播放,则再次开启播放器; if (e instanceof EndOfMediaEvent) { player.setMediaTime(new Time(0)); if (loop) { player.start(); } return; } //PrefetchCompleteEvent事件发生后调用start,正式开启播放 if (e instanceof PrefetchCompleteEvent) { player.start(); return; } //本事件表示因为用于播放资源已经确定;此时要将媒体图形conmopnent //(假如有)显示出来,同时将播放器player控制器显示到窗口里; if (e instanceof RealizeCompleteEvent) { //假如媒体中有图像,将对应图像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; } } } //菜单状态改变事件响应函数; public void itemStateChanged(ItemEvent e) { loop = !loop; } //不实施背景清除操作,以免控制面板部件闪烁 //同时使得本程序在用鼠标拖动窗口时存在部分没有立即重绘情况,有待改善 public void update(Graphics g) { paint(g); } //本类main函数,其中结构了本类一个实例; public static void main(String[] args) { new MediaPlayer("简单媒体播放器"); } public void paint(Graphics g) { // 调用超类Framepaint()方法,该paint()方法将调用Frame包含各个容器 // 和部件(包含控制面板部件)paint()方法。 super.paint(g); //以下代码实现了在开启程序之初显示欢迎界面 if (first) { int w = getSize().width; int h = getSize().height; g.setColor(Color.magenta); g.fillRect(0, 0, w, h); Font f = new Font("DialogInput", Font.BOLD, 18); g.setFont(f); FontMetrics fm = g.getFontMetrics(); int swidth = fm.stringWidth(" 简单媒体播放器 "); g.setColor(Color.white); g.drawString( " 简单媒体播放器 ", (w - swidth) / 2, (h + getInsets().top) / 2); } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 管理财经 > 金融保险

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服