[英]JApplet error that I can't seem to fix
我的Java小程序出现一个令人讨厌的错误。 我是applets的新手,所以请注意,我一点都不熟悉。
我有一个标记为index.html的HTML文件,其中包含以下代码:
<HTML>
<HEAD>
<TITLE>Applet JAR Example
</TITLE>
</HEAD>
<BODY>
<CENTER>
<B>Are YOU ready to dance??
</B>
<BR>
<BR>
<APPLET CODE="shawn/Main.class" ARCHIVE="lol.jar"
WIDTH=400
HEIGHT=300>
</APPLET>
</CENTER>
</BODY>
</HTML>
在同一目录中,我有一个标为lol.jar的Jar文件,其中包含以下代码:
package shawn;
import java.applet.AudioClip;
import java.awt.*;
import java.io.File;
import java.io.Serializable;
import javax.swing.*;
public class Main extends JApplet implements Serializable {
Image img = Toolkit.getDefaultToolkit().getImage("hey.gif");
@Override
public void init(){
playSound();
}
@Override
public void paint(Graphics g) {
g.drawImage(img, 0, 0, this);
}
public void playSound(){
AudioClip ac = getAudioClip(getCodeBase(), "hey.wav");
ac.play();
}
}
在同一目录中,我有两个文件分别标记为hey.wav和hey.gif。
当我执行页面时,小程序无法加载,仅输出Error. Click for details
消息Error. Click for details
Error. Click for details
。 当我单击时,它说:
RuntimeException
其次是...
java.lang.reflect.InvocationTargetException
当我在Eclipse中运行时,一切正常,但是只有在导出时,它才能运行。 如果需要,我会添加更多详细信息。
小程序中的一个确定的问题是:
Image img = Toolkit.getDefaultToolkit().getImage("hey.gif");
如果您在JavaDocs中查看getImage(String)
它将指出:
返回从指定文件中获取像素数据的图像,其格式可以为GIF,JPEG或PNG。 基础工具箱尝试将多个具有相同文件名的请求解析到相同的返回Image。
文件的亮点是我选择的。 小程序和文件很少一起使用,因此不适用于这种情况。 相反,必须通过URL
访问Image
。
Applet改为提供Applet.getImage(URL)
和getImage(URL,String)
。 当我们需要形成一个相对于代码库或文档库的URL
时,第二个特别方便。
如果图像与HTML位于同一目录中,则可以使用以下方式加载图像:
Image img = getImage(getDocumentBase(), "hey.gif");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.