【问题标题】:Java in netbeans, read image file from java packagenetbeans中的Java,从java包中读取图像文件
【发布时间】:2015-05-23 10:17:55
【问题描述】:

我想知道是否有人可以提供帮助?我一直在开发一个 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");

显然,如果应用程序在任何其他设备上运行,这将完全崩溃。谁能告诉我如何使这段代码可移植?

非常感谢

【问题讨论】:

  • 使用getResources方法
  • 对不起,Thusitha 我不明白哪个类的 getResources 方法我注意到 imageIO 似乎没有该名称的方法?

标签: java netbeans relative-path javax.imageio


【解决方案1】:

由于您尝试添加图像的是JFrame,因此最好使用ImageIcon 而不是Image

试试这个:

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

如果您在项目中包含images 文件夹,这也应该使应用程序具有可移植性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-29
    • 2011-08-28
    • 2011-05-20
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    相关资源
    最近更新 更多