Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
netbeans中的Java,从Java包中读取映像文件_Java_Netbeans_Relative Path_Javax.imageio - Fatal编程技术网

netbeans中的Java,从Java包中读取映像文件

netbeans中的Java,从Java包中读取映像文件,java,netbeans,relative-path,javax.imageio,Java,Netbeans,Relative Path,Javax.imageio,我想知道是否有人能帮忙?我一直在开发一个java应用程序,它在jframe上显示来自磁盘的图像。 使用netbeans,我在项目中创建了一个名为images的java包,并将图像存储在该包中。首先,如果我想让他们随应用一起发布,我应该这样做吗 我有以下功能来读取图像: Image readImg(String file) { Image image = null; try { File imgFile = new File(file

我想知道是否有人能帮忙?我一直在开发一个java应用程序,它在jframe上显示来自磁盘的图像。 使用netbeans,我在项目中创建了一个名为images的java包,并将图像存储在该包中。首先,如果我想让他们随应用一起发布,我应该这样做吗

我有以下功能来读取图像:

Image readImg(String file)
    {
        Image image = null;
        try {
            File imgFile = new File(file);
            image = ImageIO.read(imgFile);

        } catch (IOException e) {
            // System.out.println("Can not Display Image");
            e.printStackTrace();
        }
        if (image != null){       
        return image;
    } else{
        return null;
        }
    }
我的问题是,我无法计算出传递给函数的相对文件路径。我得到了要显示的图像,这样称呼它:

Image headerImg = readImg("C:\\Users\\D@nb0y\\Documents\\NetBeansProjects\\GiftAidApp\\src\\images\\galogo.png");
显然,如果应用程序在任何其他设备上运行,这将完全崩溃。有谁能给我一个让这个代码可移植的建议吗


非常感谢

因为它是您试图添加图像的
JFrame
,所以最好使用
图像图标
而不是
图像

试试这个:

ImageIcon image = new ImageIcon("images/galogo.png");
JLabel imageLabel = new JLabel(image);
frame.add(imageLabel);

如果你将你的
images
文件夹与你的项目一起包含在一起,这应该会使应用程序可移植。

使用getResources方法很抱歉,Thusitha我不了解哪个类的getResources方法,我注意到imageIO似乎没有这个名称的方法?