java - 如何从 NetBeans 中的 'Resources' 文件夹中正确获取图像

标签 java netbeans resources

我在 NetBeans 7.0 中有一个 Java 项目。

我想动态添加一些图像到某个标签。图像会根据程序的状态而有所不同。

我在我的项目的“resources”文件夹中放了一张这样的图片“filling.jpg”。

我想正确地访问这个文件(不是通过绝对或相对路径,因为这会在我构建 jar 文件时导致问题)。

于是我找到了这个方法:

ImageIcon fillingIcon = new ImageIcon(getClass().getClassLoader().getResource("filling.jpg"));
labelFontFilling.setIcon(fillingIcon);

它不断给我 java.lang.NullPointerException。 但我确信有那个图像,因为我可以从 NetBeans 属性菜单中将图像分配给该标签的标签(但我不想要这个,我想通过 Java 代码添加图像)。

我做错了什么,如何正确获取该图像?

最佳答案

这很痛苦,使用 netBeans IDE 7.2。

  1. 您需要记住,Netbeans 会在您重建时清理 Build 文件夹,所以
  2. 将资源文件夹添加到src文件夹:

    • (项目)
      • 源代码
        • 项目包文件夹(包含 .java 文件)
        • 资源(随便你的名字)
        • 图片(可选子文件夹)
  3. 在清理/构建之后,这个结构被传播到构建文件夹中:

    • (项目)
      • 构建
        • 类(class)
          • 项目包文件夹(包含生成的 .class 文件)
          • 资源(您的资源)
          • 图片(您的可选子文件夹)

要访问资源:

dlabel = new JLabel(new ImageIcon(getClass().getClassLoader().getResource("resources/images/logo.png")));

和:

if (common.readFile(getClass().getResourceAsStream("/resources/allwise.ini"), buf).equals("OK")) {

为我工作。请注意,在一种情况下有一个前导“/”,而在另一种情况下则没有。 所以资源路径的根是构建文件夹中的“classes”文件夹。

双击dist文件夹中的可执行jar文件。通往资源的路径仍然有效。

关于java - 如何从 NetBeans 中的 'Resources' 文件夹中正确获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845231/

相关文章:

java - android 中的 hasFocus() 和 isFocused() 有什么区别?

java - LVL 在 Jelly Bean 上崩溃

java - eclipse helios : tomcat project - jar will not be exported or published. runtime ClassNotFoundExceptions 可能会导致

java - 无法在浏览器窗口中查看警报

java - 无法获得应付总金额

java - 加载资源文件时出现问题

android - 以良好的质量和内存效率从资源中缩小位图

java - 在 jar 文件 Java Spring 中加载资源

java - 如何获取方法名称?

WPF 不对第一个元素应用样式