17

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;
    }
}
4

5 に答える 5