1. ホーム
  2. java

[解決済み】imageio.IIOException: 入力ファイルが読み込めない

2022-01-18 06:32:06

質問

1週間前にJavaを始めて、今ウィンドウに画像を挿入したいと思っています。 何をやってもEclipseでこのようになります。 javax.imageio.IIOException: 入力ファイルを読み込めません!

package graphics;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import src.Common;

public class Window extends JFrame
{
public class Panel extends JPanel
{

    public void paintComponent(Graphics g)
    {
        Image img; 
        try 
        {
        img = ImageIO.read(new File("/logo.jpg"));
        g.drawImage(img, 0, 0, this);
        } 
        catch (IOException e) 
        {
        e.printStackTrace();
        }

    }
}

public Window(String title, int width, int height)
{
    this.setTitle(title);
    this.setSize(width, height);
    this.setLocationRelativeTo(null);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setContentPane(new Panel()); 
    this.setVisible(true);
}

}

コードはかなり自明だと思います。 で解決しようとしたのですが これ , これ そして あれ .

私がやろうとしているのはデスクトッププログラムなのですが、ソースはこのように保存されています。 トレーニング/src/グラフィック/ウインドウ トレーニング/Src/Src/Main

読み込む画像を各フォルダに入れたのですが、それでも問題が発生します :/。

何がいけなかったのでしょうか?

EDIT ついに解決!答えはこちら

nIcE cOw からは リンク が役に立ちました。 そこで、リンクにあるように、画像をフォルダに入れ、アクセス方法を変更しました。

getClass().getResource("/images/yourImageName.extension");

解決するには?

を使ってみましたか? new File("logo.jpg"); (先頭の / を除く)?

そして、logo.jpgが出力にコピーされたことは確認しましたか?(IDEによっては、ソースディレクトリから出力(またはターゲット)ディレクトリにすべてのファイルをコピーしないものがあります)。

プレ {コード

になる

/src
|-> Window.java
|-> Logo.jpg

(IDE/コンパイラは画像を出力ディレクトリにコピーしないので、正しいパスを指定したにもかかわらず、コンパイルされたコードは画像を見つけられないことに注意してください)