Java 为什么我的图标处理代码抛出NullPointerException?
我已经为我的按钮添加了一个图像,但当我运行该框架时,将引发此异常。为什么?请帮助我Java 为什么我的图标处理代码抛出NullPointerException?,java,user-interface,swing,awt,nullpointerexception,Java,User Interface,Swing,Awt,Nullpointerexception,我已经为我的按钮添加了一个图像,但当我运行该框架时,将引发此异常。为什么?请帮助我 init: deps-jar: compile-single: run-single: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.ImageIcon.<init>(ImageIcon.java:138) at ClientGUI.IdAndP
init:
deps-jar:
compile-single:
run-single:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:138)
at ClientGUI.IdAndPasswordFrame.initComponents(IdAndPasswordFrame.java:91)
at ClientGUI.IdAndPasswordFrame.<init>(IdAndPasswordFrame.java:22)
at ClientGUI.IdAndPasswordFrame$4.run(IdAndPasswordFrame.java:200)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
BUILD SUCCESSFUL (total time: 1 second)
第91行:
jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/yahoo_1.gif"))); // NOI18N
我使用了这个糟糕的检查(Peter Lang推荐),即:System.out.println(getClass().getResource(“/Images/yahoo_1.gif”);它返回null,为什么?请帮帮我。这意味着
getClass().getResource(“/Images/yahoo_1.gif”)
返回null
声明如果
找不到资源,或者调用程序没有足够的权限获取资源
getResource
是否真的返回null
:System.out.println(getClass().getResource(“/Images/yahoo_1.gif”)代码>
Source Packages
Images
yahoo_1.gif
你的代码运行得很好。这是你的结构吗
尝试右键单击您的应用程序并选择
Clean and Build
它看起来像getClass().getResource(“/Images/yahoo_1.gif”)
返回null
,即在类路径上找不到.gif。(可能是图像还是图像?从此行传入的URL为空:
getClass().getResource("/Images/yahoo_1.gif")
从JDK文档中:
[getResource(..)返回]用于读取资源的URL对象,
或者,如果无法创建资源,则为null
已找到或调用程序没有
有足够的特权获得
资源
可能您的意思是(“Images/yahoo_1.gif”)-即相对路径不是绝对路径?为了解决此问题,需要将图像复制到bin目录中,而不是src目录中 否则,在getClass().getResource(“image.png”)上,您将始终得到null。 路径为非空,您可以将其设置为上述路径-仅当您在二进制目录中复制所需的图像时,项目的.class文件位于该目录中 这解决了问题。如果我在这方面有所帮助,请告诉我
我也有同样的问题。对我起作用的是:
“jButton1”是否设置为某个值?是的,我为这个按钮设置了一个名为yahoo_1.gif的图像。我使用了这个糟糕的检查(Peter Lang推荐),它是:System.out.println(getClass().getResource(“/Images/yahoo_1.gif”);它返回null,为什么?请帮帮我。我使用netbeans,选择图标菜单添加照片。我做的第一步是:检查getResource是否真的返回null:System.out.println(getClass().getResource(“/Images/yahoo_1.gif”);它返回null,我该怎么办?请帮忙me@JoachimSauer:感谢您的编辑,我使用了Oracle的
NULL
而不是Java的NULL
:)非常感谢我使用了Clean and Build,代码运行良好,谢谢。
getClass().getResource("/Images/yahoo_1.gif")
private class HandlerClass implements ActionListener{
public void actionperformed(ActionEvent event){
JOptionPane.showMessageDialog(null, String.format("%s", event.getActionCommand()));
}
}