使用ImageIcon(getClass()。getResource()将图像添加到Eclipse Java项目中

vic*_*VSK 0 java swing image embedded-resource

谁能帮我为什么我的Java swing应用程序出现错误?

ImageIcon(getClass().getResource()
Run Code Online (Sandbox Code Playgroud)

如下图所示加载图像。提前致谢。

显示错误的代码:

jButton9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/folder63.png"))); 
Run Code Online (Sandbox Code Playgroud)

错误说明:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at frame.foundation.initComponents(foundation.java:282)
at frame.foundation.<init>(foundation.java:21)
at frame.foundation$127.run(foundation.java:3453)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$400(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

PS:我还在项目中添加了“ images”文件夹作为源文件夹

资料夹结构:

myprojectName  
         |  
         |___src  
         |     |  
         |     |___frame //(is my package)  
         |            |  
         |            |__foundation.java // main class  
         |  
         |__images  
         |    |  
         |    |__folder63.png  
         |    |__d.jpg  
         |    |__e.jpg  
         |    |__f.jpg    
Run Code Online (Sandbox Code Playgroud)

Bra*_*raj 5

确保图像文件位于正确的位置。它应该在src/images文件夹下。

您可以根据图像位置尝试任何一种。

// Read from same package 
ImageIO.read(getClass().getResourceAsStream("folder63.png"));

// Read from images folder parallel to src in your project
ImageIO.read(new File("images/folder63.jpg"));

// Read from src/images folder
ImageIO.read(getClass().getResource("/images/folder63.png"))

// Read from src/images folder
ImageIO.read(getClass().getResourceAsStream("/images/folder63.png"))
Run Code Online (Sandbox Code Playgroud)

阅读更多...

值得阅读有关使用getResource加载图像的Java教程