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

📄 playquicktime.java

📁 一个关于SWING学习的源代码. 大家过来看一看
💻 JAVA
字号:
package com.pepsan.framework;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;

import quicktime.*;
import quicktime.io.*;
import quicktime.qd.*;
import quicktime.std.*;
import quicktime.std.movies.*;
import quicktime.std.movies.media.*;
import quicktime.app.display.*;
import quicktime.app.players.*;

/*
 *	Play some QuickTime content!
 *
 *	Copyright (c) 1999 Pepsan & Associates, Inc.
 */
public class PlayQuickTime extends JFrame implements Errors {	
	// A background image for the window
	private static String backFile = "quicktime.gif";
	private QTDrawable myPlayer;
	private Movie m;
	private QTCanvas myQTCanvas;	
	private JMenuBar menuBar;
	private JMenu playMenu;	
	private JMenuItem openMenuItem;
	private JMenuItem closeMenuItem;
	
	public PlayQuickTime () {
		try { 
			QTSession.open();
			PlayQuickTime pm = new PlayQuickTime("Do the QuickTime Thing");
			pm.toFront();
		} catch (QTException e) {
			// Couldn't initialize QT so give up
			System.err.println("QT initialization failed. Giving up.");
			QTSession.close ();
		}
	}

	// title is of course the title for the window
	public PlayQuickTime (String title) {
		super (title);
		myQTCanvas = new QTCanvas();
		
		JLabel backgroundImage = new JLabel(new ImageIcon(backFile));
		getContentPane().add(backgroundImage);
		
		playMenu();
		pack();
		show();
		 			
		getContentPane().add(myQTCanvas);			
		addWindowListener(new WindowAdapter () {
			public void windowClosing (WindowEvent e) {
				close();
			}
			
			public void windowClosed (WindowEvent e) { 
				close();
			}
		});
	}
	
	public void close() {
		setVisible(false);
	}
	
	// Resize the window to the size of the movie
	// A URL is used, even if the file is local
	public void createNewQuickTimeFromURL (String theURL) {
		try {
			DataRef urlQuickTime = new DataRef(theURL);
			m = Movie.fromDataRef (urlQuickTime,StdQTConstants.newMovieActive);
			
			MovieController mc = new MovieController (m);			
			mc.setKeysEnabled (true);
			myPlayer = new QTPlayer (mc);
			
			myQTCanvas.setClient (myPlayer, true);
			setMenuBar(null);
			pack();
		
			//no user control over MoviePlayer or MoviePresenter so set rate
			if (false)
				m.setRate(1);			
		} catch (QTException err) {
			System.err.println("Failed to create QT movie.");
		}
	}
	
	public QTDrawable getPlayer () { 
		return myPlayer; 
	}
	
	public QTCanvas getCanvas () { 
		return myQTCanvas; 
	}
	
	public Movie getMovie () throws QTException {
		return m;
	}
	
	void stopPlayer () {
		try {
			if (m != null)
				m.setRate(0);
		} catch (QTException err) {
			System.err.println("Failed to stop QT movie.");
		}
	}
	
	void playMenu() {
		
		// Create the bar and menus! What a surprise...
		menuBar = new JMenuBar();
		playMenu = new JMenu ("Play");
		menuBar.add (playMenu);
		
		openMenuItem = new JMenuItem ("Open...");
		closeMenuItem = new JMenuItem("Close");
		
		playMenu.add(openMenuItem);
		playMenu.add(closeMenuItem);
			
		// Here's what to do if the user picks Open
		openMenuItem.addActionListener (new ActionListener () {
			public void actionPerformed(ActionEvent event) {
				stopPlayer();
					
					// creat a movie through the file-open dialog of QT
				try {
					QTFile qtf = QTFile.standardGetFilePreview(QTFile.kStandardQTFileTypes);
					createNewQuickTimeFromURL ("file://" + qtf.getPath());
				} catch (QTException e) {
					if (e.errorCode() != Errors.userCanceledErr)
		 				e.printStackTrace();
		 		}
		 	}
		});
		
		closeMenuItem.addActionListener (new ActionListener () {
			public void actionPerformed(ActionEvent event) {
					// closes down QT and quits
				close();
		 	}
		});
		setJMenuBar (menuBar);	
	}
}

⌨️ 快捷键说明

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