【问题标题】:Unable to get resources using getResource() [duplicate]无法使用 getResource() 获取资源 [重复]
【发布时间】:2014-05-13 02:28:24
【问题描述】:

我正在尝试获取要在 JButton 中使用的图像,代码如下:

ImageIcon imageIcon = new ImageIcon(MineSweeper.class.getResource("C:\\Users\\___\\Documents\\GitHub\\____\\myImage.png"));
buttons[x][y].setIcon(imageIcon);

我知道该文件存在那里,但是每次运行它都会出现错误,

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:205)

环顾四周后说这是无法找到文件的响应,我很困惑我在这里做错了什么。如果我尝试使用绝对路径或相对路径,我会收到此错误,有人可以指出问题所在吗?我一定是在看一些非常简单的东西。

编辑:

正如 Alan 建议的移动文件,我将它放入 src 文件夹,它运行良好。显然在其他地方不起作用。

【问题讨论】:

    标签: java swing user-interface nullpointerexception imageicon


    【解决方案1】:

    尝试这样的设置图像图标

    ImageIcon imageIcon = new ImageIcon(getClass().getResource("myImage.png"));
    

    如果您使用 IDE,您的图像文件应该位于 src 文件夹中。如果您不使用 IDE,请将图像放在与 .java 文件相同的文件夹中。

    【讨论】:

    • 我用的是 IntelliJ 13.0.1,用绝对和相对路径文件都试过了,没用。
    • 没关系,显然使用绝对路径不会使其工作。我移动了文件,现在很好,谢谢!
    • 没问题,我很高兴它已排序。
    【解决方案2】:

    像这样直接传递路径。

    ImageIcon image = new ImageIcon("c://somepath//image.png");
    

    我不知道,MineSweeper 在这里有什么帮助

    【讨论】:

    • 这是我正在处理的项目的名称,不过谢谢。
    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    相关资源
    最近更新 更多