2
我創建一個對象,它從包中獲取圖像,然後在屏幕上繪製它。當我在netbeans中運行代碼時,它工作正常。在NetBeans之外,我得到一個空指針異常錯誤。 這是我的代碼。我使用println部分來查看「青蛙」是否等於null。當跑說是等於「/images/upFrogStill.png」,所以我不確定爲什麼空指針異常。 錯誤出現在「ImageIcon ii ...」行。線程NullPointerException如果在netbeans之外運行
public class Frog extends Sprite implements Commons {
String frog = "/images/upFrogStill.png";
public Frog() {
System.out.println("frog = " + frog);
ImageIcon ii = new ImageIcon(this.getClass().getResource(frog));
image = ii.getImage();
width = image.getWidth(null);
height = image.getHeight(null);
resetState();
}
void resetState() {
if(frog != null){
frog = "/images/upFrogStill.png";
x = 185;
y = 397;
}}
}
確保資源位於'/ images/upFrogStill.png'的類路徑中。你如何在netbeans之外運行應用程序? –
基於代碼,它看起來像'青蛙'可能是由其他一些包級別設置。如果這是真的,你應該定義一個常量,而不是有兩個不同的內聯字符串來定義路徑。如果不是這種情況,你應該使'青蛙'最終決定,然後你不需要'空'檢查。 – unholysampler
圖像文件位於netbeans軟件包「圖像」中,在netbeans中找到並正常工作。我不能讓青蛙最終成爲青蛙,因爲它稍後會在遊戲中變成不同的文件路徑來爲青蛙製作動畫。 –