编译运行一个Java Applet程序的问题

moffatte 2005-05-23 07:25:35
我从SUN上下的源代码,自己写了个HTML文件,却不能编译运行,帮我看看是那里出问题了,谢了!
import java.applet.Applet;
import java.awt.*;
import java.lang.String;
import java.net.URL;
import java.net.MalformedURLException;
import java.io.IOException;
import javax.media.*;

/**
* This is a Java Applet that demonstrates how to create a simple
* media player with a media event listener. It will play the
* media clip right away and continuously loop.
*
* <!-- Sample HTML
* <applet code=TypicalPlayerApplet width=320 height=300>
* <param name=file value="Astrnmy.avi">
* </applet>
* -->
*/

public class TypicalPlayerApplet extends Applet implements
ControllerListener
{
// media player
Player player = null;
// component in which video is playing
Component visualComponent = null;
// controls gain, position, start, stop
Component controlComponent = null;
// displays progress during download
Component progressBar = null;

/**
* Read the applet file parameter and create the media
* player.
*/

public void init()
{
setLayout(new BorderLayout());
// input file name from html param
String mediaFile = null;
// URL for our media file
URL url = null;
// URL for doc containing applet
URL codeBase = getDocumentBase();

// Get the media filename info.
// The applet tag should contain the path to the
// source media file, relative to the html page.

if ((mediaFile = getParameter("FILE")) == null)
Fatal("Invalid media file parameter");

try
{
// Create an url from the file name and the url to the
// document containing this applet.

if ((url = new URL(codeBase, mediaFile)) == null)
Fatal("Can't build URL for " + mediaFile);

// Create an instance of a player for this media
//if ((player = Manager.createPlayer(url)) == null)
//Fatal("Could not create player for "+url);

// Add ourselves as a listener for player's events
player.addControllerListener(this);
}
catch (MalformedURLException u)
{
Fatal("Invalid media file URL!");
}
catch(IOException i)
{
Fatal("IO exception creating player for "+url);
}

// This applet assumes that its start() calls
// player.start().This causes the player to become
// Realized. Once Realized, the Applet will get
// the visual and control panel components and add
// them to the Applet. These components are not added
// during init() because they are long operations that
// would make us appear unresposive to the user.
}

/**
* Start media file playback. This function is called the
* first time that the Applet runs and every
* time the user re-enters the page.
*/

public void start()
{
// Call start() to prefetch and start the player.

if (player != null) player.start();
}

/**
* Stop media file playback and release resources before
* leaving the page.
*/

public void stop()
{
if (player != null)
{
player.stop();
player.deallocate();
}
}

/**
* This controllerUpdate function must be defined in order
* to implement a ControllerListener interface. This
* function will be called whenever there is a media event.
*/

public synchronized void controllerUpdate(ControllerEvent event)
{
// If we're getting messages from a dead player,
// just leave

if (player == null) return;

// When the player is Realized, get the visual
// and control components and add them to the Applet

if (event instanceof RealizeCompleteEvent)
{
if ((visualComponent = player.getVisualComponent()) != null)
add("Center", visualComponent);
if ((controlComponent = player.getControlPanelComponent()) != null)
add("South",controlComponent);
// force the applet to draw the components
validate();
}
else if (event instanceof CachingControlEvent)
{

// Put a progress bar up when downloading starts,
// take it down when downloading ends.

CachingControlEvent e = (CachingControlEvent) event;
CachingControl cc = e.getCachingControl();
long cc_progress = e.getContentProgress();
long cc_length = cc.getContentLength();

// Add the bar if not already there ...

if (progressBar == null)
if ((progressBar = cc.getProgressBarComponent()) != null)
{
add("North", progressBar);
validate();
}

// Remove bar when finished ownloading
if (progressBar != null)
if (cc_progress == cc_length)
{
remove (progressBar);
progressBar = null;
validate();
}
}
else if (event instanceof EndOfMediaEvent)
{
// We've reached the end of the media; rewind and
// start over

player.setMediaTime(new Time(0));
player.start();
}
else if (event instanceof ControllerErrorEvent)
{
// Tell TypicalPlayerApplet.start() to call it a day

player = null;
Fatal (((ControllerErrorEvent)event).getMessage());
}
}

void Fatal (String s)
{
// Applications will make various choices about what
// to do here. We print a message and then exit

System.err.println("FATAL ERROR: " + s);
throw new Error(s); // Invoke the uncaught exception
// handler System.exit() is another
// choice
}
}

以下是我自己写的HTML代码:
<HTML>
<applet code = "TypicalPlayerApplet.class" width = 200, height = 200></applet>
</HTML>
...全文
374 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
casinosun 2005-05-24
  • 打赏
  • 举报
回复
下载jmf包 javax.media
moffatte 2005-05-23
  • 打赏
  • 举报
回复
unreported exception javax.media.NoPlayerException;must be caught or declared to be throw

oyljerry 2005-05-23
  • 打赏
  • 举报
回复
编译什么问题
moffatte 2005-05-23
  • 打赏
  • 举报
回复
这是出处:http://java.sun.com/products/java-media/jmf/1.0/guide/JavaMediaFrameA.fm.html

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧