簡體   English   中英

我似乎無法修復的JApplet錯誤

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM