[英]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.