netbeans 获取“事件队列”中的异常,无法调用“java.net.URL.toExternalForm()”,因为“位置”为空

vatpfxk5  于 2022-11-29  发布在  Java
关注(0)|答案(1)|浏览(742)

我正在用Netbeans为我的项目建立一个注册页面。所以我添加了一些图片和图标,它们是我从文件夹“AddNewBookIcons”、“adminIcons”和“icons”中导入的。这些文件夹只在我的源代码包中,并且与主java类文件夹在同一个目录中。
这是我的文件夹结构内的源代码包:folder str
用于图标或图像路径的示例代码

jLabel5 = new javax.swing.JLabel();

jLabel5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/signup-library-icon.png"))); // NOI18N

jLabel5.setText("jLabel5");

jPanel1.add(jLabel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 140, 800, 420));

该图像文件是有效的,它是在图标文件夹内。我已经提供了写图标和图像路径也,但我仍然得到下面的错误:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "java.net.URL.toExternalForm()" because "location" is null
    at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:217)
    at jframe.SignupPage.initComponents(SignupPage.java:141)
    at jframe.SignupPage.<init>(SignupPage.java:24)
    at jframe.SignupPage$4.run(SignupPage.java:373)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

我试图解决它采取的帮助,一些现有的资源在互联网上,但没有找到任何相关的细节,解决了我的问题。
预期:即使我提供了写入图像和图标路径,我也无法找出出现此异常的原因。或者我提供的路径应该以不同的方式写入?请帮助我。

uqcuzwp8

uqcuzwp81#

我很确定路径写错了。你可以用java写路径,用\\进入路径中的一个新文件夹。你必须用两个,因为其中一个是转义符,所以如果你放另一个,你就转义了转义符,回到正常的路径。不要用"/icons/signup-library-icon.png",试着用"\\icons\\signup-library-icon.png"。如果不起作用,请尝试删除路径开头的两个正斜杠。

相关问题