Java アプリケーションに問題があります。特に、コンピューター内の場所から画像をロードする際に問題があります。
この投稿に続いて、 aBufferedImage
と aを使用InputFileStream
してコンピューターに画像をロードしました。まず、画像 ( pic2.jpg
) をソース コードに挿入しました。ただし、画像を別の場所 (たとえばC:\\ImageTest\pic2.jpg
) に配置すると、Java IDE は次のように表示します。IllegalArgumentException
return ImageIO.read(in);
コードは次のとおりです。
public class MiddlePanel extends JPanel {
private BufferedImage img;
public MiddlePanel(int width) {
//img = getImage("pic2.jpg");
img = getImage("C:\\ImageTest\\pic2.jpg");
this.setPreferredSize(new Dimension(800,460));
}
public void paintComponent(Graphics g) {
// ...
}
private BufferedImage getImage(String filename) {
// This time, you can use an InputStream to load
try {
// Grab the InputStream for the image.
InputStream in = getClass().getResourceAsStream(filename);
// Then read it.
return ImageIO.read(in);
} catch (IOException e) {
System.out.println("The image was not loaded.");
//System.exit(1);
}
return null;
}
}