从JAVA中的图像文件夹访问图像

时间:2016-04-23 09:30:40

标签: java

我是java GUI的初学者。并希望从文件夹访问图像,但我收到以下错误。

我的代码

import java.awt.Image;

import javax.swing.ImageIcon;

public class Images {

    private static String IMG_FOLDER = "C:/Users/RASHID/workspace/images/";

    public static Image ICON = getImage(IMG_FOLDER + "icon.png");

private static Images instance; 

    private Images() {}

    public static Images getInstance() {
        if(instance==null)
            instance = new Images();
        return instance;
    }

    public static Image getImage(String image){
        return getImageIcon(image).getImage();
    }

    public static ImageIcon getImageIcon(String image){
        return new ImageIcon(getInstance().getClass().getClassLoader().getResource(image));
    }
}

当我尝试在main中运行这个时,我得到以下错误。我不知道这里发生了什么。

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at Images.getImageIcon(Images.java:38)
    at Images.getImage(Images.java:34)
    at Images.<clinit>(Images.java:9)

3 个答案:

答案 0 :(得分:0)

您不使用类加载器从硬盘驱动器中获取文件。相反,您需要将其作为File s获取并首先转换为Image

File sourceimage = new File("c:\\mypic.jpg");
Image image = ImageIO.read(sourceimage);
return new ImageIcon(image);

(直接来自this site - 看看)

答案 1 :(得分:0)

您正在尝试使用带有URL参数的constroctur构造ImageIcon对象(因为getResource()方法返回URL对象,顺便说一下,它返回null,因此返回NullPointerException)

您应该使用ImageIcon(String filename)构造函数,这将从指定的文件创建ImageIcon。

答案 2 :(得分:0)

从本地文件夹中读取

File sourceimage = new File("c:\\picture_name.jpeg");
Image image = ImageIO.read(sourceimage);