ImageIcon的getResource上的java.lang.NullPointerException Swing GUI
我是swing GUI的初学者,我正在使用macbook pro和Eclipse Luna,我的图像与finder中的代码位于同一文件夹中,但在Eclipse中,图像与代码不在同一文件夹中显示。见:ImageIcon的getResource上的java.lang.NullPointerException Swing GUI,java,eclipse,swing,annotations,embedded-resource,Java,Eclipse,Swing,Annotations,Embedded Resource,我是swing GUI的初学者,我正在使用macbook pro和Eclipse Luna,我的图像与finder中的代码位于同一文件夹中,但在Eclipse中,图像与代码不在同一文件夹中显示。见: import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.SwingUtilities;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
class Frame extends JFrame {
public Frame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Online First Game Image");
//below is where one of the errors are
ImageIcon image = new ImageIcon(this.getClass().getResource("/image.png"));
JLabel label = new JLabel(image);
JScrollPane scrollPane = new JScrollPane(label);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
add(scrollPane, BorderLayout.CENTER);
pack();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
// where the other error is
new Frame().setVisible(true);
}
});
}
}
下面是错误消息:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:217)
at Frame.<init>(Frame.java:13)
at Frame$1.run(Frame.java:26)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
线程“AWT-EventQueue-0”java.lang.NullPointerException中的异常
位于javax.swing.ImageIcon.(ImageIcon.java:217)
在帧处。(Frame.java:13)
在帧$1.run(Frame.java:26)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)中
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
在java.awt.EventQueue.access$500(EventQueue.java:97)
在java.awt.EventQueue$3.run(EventQueue.java:709)
在java.awt.EventQueue$3.run(EventQueue.java:703)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)中
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:105)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
正如我所说,如果有人能帮我修复这个bug,那将非常有帮助
编辑:我修复了这个问题,它与代码无关。它不是重复的,并且在尝试将映像添加到Eclipse目录时出现问题 删除图像前的斜杠。png: 更改此选项:
ImageIcon image=新的ImageIcon(this.getClass().getResource(“/image.png”)代码>
通过此:
ImageIcon image=新的ImageIcon(this.getClass().getResource(“image.png”)代码>由于类已经在空包中,这没有什么区别。我已经解决了与代码无关的问题。我强烈建议将类放入包中,并将图像放入资源目录。@MLG HockeyPlayer:希望这个答案对主题有帮助:-)