私は現在ゲームをプログラミングしていて、ImageLoader
クラスからロードしてイメージを作成しようとしていますが、次のエラーが発生し続けます:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1338)
at game.ImageLoader.getImage(ImageLoader.java:24)
at game.TestPanel.<init>(TestPanel.java:38)
at game.TestApplication.main(TestApplication.java:26)
クラスを呼び出しているクラスのコードは次のImageLoader
とおりですが、catch ブロックでもエラーが発生します。
public TestPanel ()
{
try
{
ClassLoader myLoader = this.getClass().getClassLoader();
ImageLoader loader = new ImageLoader();
backdrop = loader.getImage("resources/Asteroid.jpg");
ImageLoader test = new ImageLoader();
ship = test.getImage("resources/Alien-Ship.png");
InputStream pointStream = myLoader.getResourceAsStream("resources/path_1.txt");
Scanner s = new Scanner (pointStream);
objectPath = new PathPoints(s);
squid = objectPath.getStart();
}
catch (IOException e)
{
System.out.println ("Could not load: " + e);
}
addMouseListener(this);
}
そして、ここに私のImageLoader
クラスのコードがあります:
import java.awt.Image;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
import javax.imageio.ImageIO;
public class ImageLoader {
public Image loadedImage;
public ImageLoader(){
}
public Image getImage(String s){
try
{
ClassLoader myLoader = this.getClass().getClassLoader();
InputStream imageStream = myLoader.getResourceAsStream(s);
loadedImage = ImageIO.read(imageStream);
}
catch (IOException e)
{
System.out.println ("Could not load: " + e);
}
return loadedImage;
}
}
null をスローするのはなぜですか! のパスを変更しようとしましたが、resources/Asteroid.jpg
何/resources/Asteroid.jpg
も変更されませんでした。
resources
画像とポイントリソースを保存しているパッケージであるため、クラスパスに関連しています。ツリーの画像をアップロードできないため、次のようになります。
プロジェクト - MyGame
パッケージ:
play - すべてのクラスファイルとコードを含む
リソース - すべての画像とドキュメントが含まれています