My FAQ,最新最全的IT技术FAQ
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论
  当前位置: > 程序开发 > 编程语言 > Java > 用户界面
SWT+JMF乱真windows播放器
作者:未知 时间:2005-07-24 21:16 出处:JR 责编:My FAQ
              摘要:SWT+JMF乱真windows播放器
SWT的最大好处是windows具有窗口风格,把SWT与JMF结合使用,windows的外框,java的播放器,你觉得我这个想法如何?
如果你要运行我的代码,你必须安装JMF2.1.1e并且将swt的jar文件导入(记得要将swt-win32-2135.dll放在执行路径下)。
  1. import java.awt.java/awt/BorderLayout.java.html" target="_blank">BorderLayout;
  2. import java.awt.java/awt/Component.java.html" target="_blank">Component;
  3. import java.awt.java/awt/Panel.java.html" target="_blank">Panel;
  4. import java.io.java/io/IOException.java.html" target="_blank">IOException;
  5. import java.net.java/net/MalformedURLException.java.html" target="_blank">MalformedURLException;
  6. import java.net.java/net/URL.java.html" target="_blank">URL;
  7. import javax.media.ConfigureCompleteEvent;
  8. import javax.media.ControllerEvent;
  9. import javax.media.ControllerListener;
  10. import javax.media.EndOfMediaEvent;
  11. import javax.media.Manager;
  12. import javax.media.NoPlayerException;
  13. import javax.media.Player;
  14. import javax.media.RealizeCompleteEvent;
  15. import org.eclipse.jface.window.Window;
  16. import org.eclipse.swt.SWT;
  17. import org.eclipse.swt.internal.awt.win32.SWT_AWT;
  18. import org.eclipse.swt.widgets.Display;
  19. import org.eclipse.swt.widgets.Shell;
  20. /**
  21.  * @author 
  22.  * <a href="mailto:jdcyang@yahoo.com.cn">刘洋</a>
  23.  * 2003-7-17 19:34:38
  24.  */
  25. public class SWTPlayer implements ControllerListener {
  26.     public static void main(java/lang/String.java.html" target="_blank">String[] args) {
  27.         SWTPlayer sp = new SWTPlayer();
  28.         sp.play();
  29.     }
  30.     private boolean configured =false;
  31.     private boolean realized = false;
  32.     Player player;
  33.     java/awt/Panel.java.html" target="_blank">Panel panel;
  34.     public void play(){
  35.         Display display = new Display ();
  36.         Shell shell = new Shell(display,SWT.MAX);
  37.         shell.setSize(320,240);
  38.         shell.setText("你好SWT");
  39.         panel = SWT_AWT.new_Panel(shell);
  40.         java/net/URL.java.html" target="_blank">URL url = null;
  41.         try {
  42.             url = new java/net/URL.java.html" target="_blank">URL("file:/D:/video/jboss.mpeg");
  43.         } catch (java/net/MalformedURLException.java.html" target="_blank">MalformedURLException e) {
  44.             e.printStackTrace();
  45.         }        
  46.         try {
  47.             player = Manager.createPlayer(url);
  48.         } catch (NoPlayerException e1) {
  49.             e1.printStackTrace();
  50.         } catch (java/io/IOException.java.html" target="_blank">IOException e1) {
  51.             e1.printStackTrace();
  52.         }
  53.         player.addControllerListener(this);
  54.             
  55.         player.realize();
  56.         while (! realized) {
  57.             try {
  58.                 java/lang/Thread.java.html" target="_blank">Thread.sleep(100L);;
  59.             } catch (java/lang/InterruptedException.java.html" target="_blank">InterruptedException e) {
  60.             // ignore
  61.             }
  62.         }        
  63.         panel.setLayout(new java/awt/BorderLayout.java.html" target="_blank">BorderLayout());
  64.         panel.add(player.getVisualComponent(),java/awt/BorderLayout.java.html" target="_blank">BorderLayout.CENTER);
  65.         java/awt/Component.java.html" target="_blank">Component cpc =  player.getControlPanelComponent();
  66.         if (cpc != null) {
  67.             panel.add(cpc,java/awt/BorderLayout.java.html" target="_blank">BorderLayout.SOUTH);
  68.         } else {
  69.         }        
  70.         player.start();        
  71.     
  72.         shell.open ();
  73.         Window win;
  74.     
  75.         while (!shell.isDisposed ()) {
  76.             if (!display.readAndDispatch ()) display.sleep ();
  77.         }
  78.         display.dispose ();    
  79.     }
  80.     /* (non-Javadoc)
  81.      * @see javax.media.ControllerListener#controllerUpdate(javax.media.ControllerEvent)
  82.      */
  83.     public void controllerUpdate(ControllerEvent evt) {
  84.         if (evt instanceof RealizeCompleteEvent) {
  85.             realized = true;
  86.         } else     if (evt instanceof ConfigureCompleteEvent) {
  87.             configured = true;
  88.         } else if (evt instanceof EndOfMediaEvent) {
  89.         } else {
  90.         }        
  91.     }
  92. }
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有