我一直收到“线程”main“java.lang.NullPointerException中的异常:无法调用”java.net.URL.toExternalForm()“,因为”location“为null。[复制]

I keep getting "Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.net.URL.toExternalForm()" because "location" is null." [duplicate]

提问人:Sakshi 提问时间:5/30/2023 最后编辑:Mark RotteveelSakshi 更新时间:5/30/2023 访问量:142

问:

package HotelManagement;

import javax.swing.*; 

public class HotelManagementSystem extends JFrame{
    HotelManagementSystem(){
        setSize(1366,768);
        setLocation(100,100);
        ImageIcon i1 = new ImageIcon(ClassLoader.getSystemResource("icons/hotel.jpg"));
        JLabel image = new JLabel(i1);
        add(image);

        setVisible(true);
    }

    public static void main(String[] args) {
        new HotelManagementSystem();        
    }

}

错误:

线程“main”java.lang.NullPointerException 中的异常:无法 调用“java.net.URL.toExternalForm()”,因为“location”为空。

这是我的代码,我有图标文件夹,其中包含 hotel.jpg 在 eclipse 中项目的 src 文件夹中。我尝试使用“System.getProperty(”user.dir“)”,也尝试使用“./icons/hotel”和 “(System.getProperty(”user.dir“)+ ”.\icons\hotel.jpg“)”以及我在互联网上找到的一切。

java swing nullpointerexception

评论

1赞 Stultuske 5/30/2023
文件是否存在?它是否存在于你认为它存在的地方?您认为该路径将在哪里查找文件?
0赞 Sakshi 5/30/2023
无法理解你
0赞 Stultuske 5/30/2023
很可能它没有在你认为它正在查找的目录中查找
1赞 Stultuske 5/30/2023
将文件放在正确的目录中
1赞 Mark Rotteveel 5/30/2023
您的文件不是“系统资源”。

答:

-3赞 Harry 5/30/2023 #1

我猜问题存在于setLocation(100,100)中,但事实并非如此 显示。如果您显示该方法的代码,也许我们可以提供帮助。

正如 Stultuske 所写,您经常会怀疑文件丢失或 在错误的地方......

评论

0赞 Sakshi 5/30/2023
但是,即使我复制文件的路径,我也可以手动访问该文件夹中的文件,它是相同的路径