⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mediaframe.java

📁 Java实例入门
💻 JAVA
字号:
package javamediaplayer;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.io.*;import java.net.*;import javax.media.*;import javax.media.bean.playerbean.*;/** * Title:        使用Java制作的媒体播放器 * Description:  这个播放器利用了Java Media Frame API来实现主要功能 * Copyright:    Copyright (c) 2001 * Company: * @author * @version 1.0 */public class MediaFrame extends JFrame  implements ControllerListener{  JPanel contentPane;  JMenuBar jMenuBar1 = new JMenuBar();  JMenu jMenuFile = new JMenu();  JMenuItem jMenuFileExit = new JMenuItem();  JMenu jMenuHelp = new JMenu();  JMenuItem jMenuHelpAbout = new JMenuItem();  JLabel statusBar = new JLabel();  BorderLayout borderLayout1 = new BorderLayout();  JMenuItem jMenuOpenFile = new JMenuItem();  JMenuItem jMenuOpenUrl = new JMenuItem();  JPanel jPanelVideo = new JPanel();  BorderLayout borderLayout2 = new BorderLayout();  JMenu jMenuCtrl = new JMenu();  JCheckBoxMenuItem jCheckBoxMenuAutoRep = new JCheckBoxMenuItem();  MediaPlayer player;  Component visualComponent=null;  Component controlComponent=null;  boolean displaying=false;  String currentFile="";  String currentUrl="";  /**Construct the frame*/  public MediaFrame() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  /**Component initialization*/  private void jbInit() throws Exception  {    //setIconImage(Toolkit.getDefaultToolkit().createImage(MediaFrame.class.getResource("[Your Icon]")));    contentPane = (JPanel) this.getContentPane();    contentPane.setLayout(borderLayout1);    jMenuCtrl.setText("Control");    jCheckBoxMenuAutoRep.setText("Auto Replay");    jCheckBoxMenuAutoRep.addItemListener(new java.awt.event.ItemListener() {      public void itemStateChanged(ItemEvent e) {        jCheckBoxMenuAutoRep_itemStateChanged(e);      }    });    contentPane.add(statusBar, BorderLayout.SOUTH);    contentPane.add(jPanelVideo, BorderLayout.CENTER);    this.setSize(new Dimension(400, 300));    this.setTitle("媒体播放器");    statusBar.setText(" ");    JPopupMenu.setDefaultLightWeightPopupEnabled(false) ;    jMenuFile.setText("File");    jMenuFileExit.setText("Exit");    jMenuFileExit.addActionListener(new ActionListener()  {      public void actionPerformed(ActionEvent e) {        jMenuFileExit_actionPerformed(e);      }    });    jMenuHelp.setText("Help");    jMenuHelpAbout.setText("About");    jMenuHelpAbout.addActionListener(new ActionListener()  {      public void actionPerformed(ActionEvent e) {        jMenuHelpAbout_actionPerformed(e);      }    });    jMenuOpenFile.setText("Open File...");    jMenuOpenFile.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        jMenuOpenFile_actionPerformed(e);      }    });    jMenuOpenUrl.setText("Open Url...");    jMenuOpenUrl.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        jMenuOpenUrl_actionPerformed(e);      }    });    jPanelVideo.setLayout(borderLayout2);    jMenuFile.add(jMenuOpenFile);    jMenuFile.add(jMenuOpenUrl);    jMenuFile.add(jMenuFileExit);    jMenuHelp.add(jMenuHelpAbout);    jMenuBar1.add(jMenuFile);    jMenuBar1.add(jMenuCtrl);    jMenuBar1.add(jMenuHelp);    this.setJMenuBar(jMenuBar1);    jMenuCtrl.add(jCheckBoxMenuAutoRep);  }  /**File | Exit action performed*/  public void jMenuFileExit_actionPerformed(ActionEvent e) {    System.exit(0);  }  /**Help | About action performed*/  public void jMenuHelpAbout_actionPerformed(ActionEvent e) {    MediaFrame_AboutBox dlg = new MediaFrame_AboutBox(this);    Dimension dlgSize = dlg.getPreferredSize();    Dimension frmSize = getSize();    Point loc = getLocation();    dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);    dlg.setModal(true);    dlg.show();  }  /**Overridden so we can exit when window is closed*/  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      jMenuFileExit_actionPerformed(null);    }  }  void jMenuOpenUrl_actionPerformed(ActionEvent e) {     try{         OpenUrlDlg urlDlg=new OpenUrlDlg(this,currentUrl);         urlDlg.show();        if(urlDlg.getAction() ==OpenUrlDlg.ACTION_OPEN ){             URL selUrl=new URL(urlDlg.getUrl());            if(selUrl!=null) open(selUrl);              currentUrl=selUrl.toString();        }        this.repaint() ;     }catch(Exception ex){     }  }  void jMenuOpenFile_actionPerformed(ActionEvent e) {     JFileChooser fileOpenDlg=new JFileChooser();     String FileName="";     if(!currentFile.equals("") ){         fileOpenDlg.setSelectedFile(new File(currentFile));     }    if(JFileChooser.APPROVE_OPTION== fileOpenDlg.showOpenDialog(this)){         File selFile=fileOpenDlg.getSelectedFile();        if(selFile!=null) FileName=selFile.getPath() ;    }   this.repaint() ;   if(!FileName.equals("")) {       open(FileName);   }  }  void open(String FileName){     try{         URL selUrl=new URL("file://"+FileName);         currentFile=FileName;         open(selUrl);     }catch(Exception e){         System.out.println(e) ;     }  }  void open(URL selUrl) throws Exception {     killCurrentPlayer() ;     displaying=false;     player=new MediaPlayer();     player.addControllerListener(this) ;     player.setMediaLocation(selUrl.toString());     player.setPlaybackLoop(jCheckBoxMenuAutoRep.getState());     player.realize();     statusBar.setText("文件:"+selUrl.toString());  }  public synchronized void controllerUpdate ( ControllerEvent event ) {    if ( event instanceof RealizeCompleteEvent ) {        visualComponent=null;        controlComponent=null;       if((visualComponent=player.getVisualComponent())!=null){           jPanelVideo.add(visualComponent,"Center");       }      if((controlComponent=player.getControlPanelComponent())!=null){           jPanelVideo.add(controlComponent,"South");       }       resizePanel();      this.pack() ;      displaying=true;      player.prefetch();    }    else if ( event instanceof PrefetchCompleteEvent ) {       player.start();    }    this.validate();  }  void resizePanel(){    Dimension dimVisual=new Dimension(0,0);    Dimension dimControl=new Dimension(0,0);   int width=0;   int height=0;    if(visualComponent!=null)      dimVisual= visualComponent.getPreferredSize();    if(controlComponent!=null)  {       dimControl=controlComponent.getPreferredSize();    }    width=dimVisual.width;    height=dimControl.height+dimVisual.height;    if(width==0) width=100;    if(height==0) height=50;    jPanelVideo.setSize(width, height);  }  void rePaint(){    jPanelVideo.repaint();    super.repaint() ;  }  void killCurrentPlayer () {        killCurrentView ();     if ( player != null ) {            player.close ();            player.removeControllerListener ( this );            player = null;        }        displaying=false;  }  void killCurrentView () {     if(displaying){        if(visualComponent!=null)           jPanelVideo.remove(visualComponent);        if(controlComponent!=null)           jPanelVideo.remove(controlComponent);        visualComponent=null;        controlComponent=null;     } }  void jCheckBoxMenuAutoRep_itemStateChanged(ItemEvent e) {     if(player!=null)  player.setPlaybackLoop(jCheckBoxMenuAutoRep.getState() );  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -