📄 playerpanel.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 + -