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

📄 playerpanel.java

📁 FMJ(freedom media for java)是java视频开发的新选择
💻 JAVA
字号:
package net.sf.fmj.ejmf.toolkit.util;import java.awt.BorderLayout;import java.awt.Component;import java.io.IOException;import javax.media.Manager;import javax.media.MediaLocator;import javax.media.NoPlayerException;import javax.media.Player;import javax.swing.JPanel;/** * This class is a panel that is intended to display a * particular medium.  It is intended that all GUI layout take * place in the constructor, and that the media should begin * playing when begin() is called.  This will allow its parent * container to complete its own layout before the media plays. * <p> * Example: * <P> * <blockquote><pre> * Frame f = new Frame(); * Player player = Utility.getPlayer("/ejmf/media/xmas.avi"); * PlayerPanel p = new PlayerPanel(player); * Label l = new Label("Media example");<p> * //  Configure display * p.addControlComponent(); * p.addVisualComponent(); * add(p); * add(l);<p> * //  Display components * f.pack(); * f.setvisible(true);<p> * //  Start media play * p.begin(); * </pre></blockquote> * Note that it may be worthwhile to realize() the player in * the constructor of the PlayerPanel, so that when begin() is * called the components do not have to resize. *  * From the book: Essential JMF, Gordon, Talley (ISBN 0130801046).  Used with permission. *  * Modified by Ken Larson. * * @author     Steve Talley & Rob Gordon */public class PlayerPanel extends JPanel {    private static final Object _VISLOC = BorderLayout.CENTER;    private static final Object _CPLOC = BorderLayout.SOUTH;    private static final String LOADLABEL = "Loading Media...";//    public TitledBorder//        mediaBorder = new TitledBorder(//            BorderConstants.etchedBorder, "Media" );    private JPanel mediaPanel;    private Player player;//    private JLabel loadingLabel;    /**     * Constructs a PlayerPanel for the given MediaLocator.     *     * @exception  IOException     *             If an I/O error occurs while accessing the     *             media.     *     * @exception  NoPlayerException     *             If a Player cannot be created from the given     *             MediaLocator.     */    public PlayerPanel(MediaLocator locator)        throws IOException, NoPlayerException    {        player = Manager.createPlayer(locator);        this.setLayout(new BorderLayout());        //this.setLayout(new BorderLayout());        mediaPanel = new JPanel();        mediaPanel.setLayout( new BorderLayout() );        //mediaPanel.setBorder(mediaBorder);       // setBorder( BorderConstants.emptyBorder );//        loadingLabel =//            new JLabel(LOADLABEL);////        loadingLabel.setFont(//            new Font("Dialog", Font.BOLD, 12) );////        add(loadingLabel);    }    /**     * Gets the Player for this PlayerPanel.     */    public Player getPlayer() {        return player;    }    /**     * Get the media panel component     */    public JPanel getMediaPanel() {        return mediaPanel;    }    /**     * Removes the initial "loading" label that appears while the     * media is loading.     *///   public void removeLoadingLabel() {//        if( isAncestorOf(loadingLabel) ) {//            remove(loadingLabel);//        }//    }    public void addMediaPanel() {        if(! isAncestorOf(mediaPanel) ) {            add(mediaPanel, BorderLayout.CENTER);        }    }    /**     * Adds a given component to the part of this PlayerPanel     * reserved for its Player's visual component.     *     * @param      cc     *             The Component to add.     *     * @return     The Component added.     */    public Component addVisualComponent(Component cc) {        //removeLoadingLabel();        addMediaPanel();        return addComponent(cc, _VISLOC);    }    /**     * Adds the Player's visual component to this PlayerPanel.     *     * @return     The Component added.     */    public Component addVisualComponent() {        return addVisualComponent(            player.getVisualComponent());    }    /**     * Adds a given component to the part of this PlayerPanel     * reserved for its Player's control component.     *     * @param      cc     *             <addtext>     *     * @return     <addtext>     */    public Component addControlComponent(Component cc) {        //removeLoadingLabel();        addMediaPanel();        return addComponent(cc, _CPLOC);    }    /**     * Adds the Player's control component to this PlayerPanel.     *     * @return     <addtext>     */    public Component addControlComponent() {        return addControlComponent(            player.getControlPanelComponent());    }    private Component addComponent(        Component c,        Object constraints)    {        if(c == null) {            return c;        }        mediaPanel.add(c, constraints);        return c;    }}

⌨️ 快捷键说明

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