为什么我的图标处理code抛出NullPointerException? [英] Why does my icon handling code throw a NullPointerException?
问题描述
我添加图片为我的按钮,但是当我运行这个框架会抛出异常。为什么?请帮助我。
初始化:DEPS-JAR:
编译单:
跑单:
在异常线程AWT-EventQueue的-0显示java.lang.NullPointerException
在javax.swing.ImageIcon中的<&初始化GT;(ImageIcon.java:138)
在ClientGUI.IdAndPasswordFrame.initComponents(IdAndPasswordFrame.java:91)
在ClientGUI.IdAndPasswordFrame<&初始化GT;(IdAndPasswordFrame.java:22)
在ClientGUI.IdAndPasswordFrame $ 4.run(IdAndPasswordFrame.java:200)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
在java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
在java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
在java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
BUILD SUCCESSFUL(总时间:1秒)
行138:
公开的ImageIcon(URL位置){
这个(位置,location.toExternalForm());
}
line91:
jButton1.setIcon(新javax.swing.ImageIcon中(的getClass()的getResource(/图片/ yahoo_1.gif))); // NOI18N
我用这个可怜的检查(彼得郎推荐)这是内容:System.out.println(的getClass()的getResource(/图片/ yahoo_1.gif));它返回null,为什么?请帮助我。
这意味着,的getClass()。的getResource(/图片/ yahoo_1.gif)
收益空
。
<一个href=\"http://java.sun.com/javase/6/docs/api/java/lang/ClassLoader.html#getResource%28java.lang.String%29\"相对=nofollow>的JavaDoc 指出,出现这种情况,如果
资源找不到或者调用方没有足够的权限来获取资源。
块引用>
检查
的getResource
真的返回空
:结果的System.out.println(的getClass()的getResource(/图片/ yahoo_1.gif));
请确保您的路径是正确的,它是在你的类路径中。
修改
我刚刚与NetBeans尝试。我创建了以下结构
源代码包
图片
yahoo_1.gif和您的code正常工作。这是您的结构?
尝试在你的应用程序单击鼠标右键,选择
清理并生成
。I have added an image for my button,but when I run that frame this exception will be thrown .why?please help me.
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)
line 138:
public ImageIcon (URL location) { this(location, location.toExternalForm()); }
line91:
jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/yahoo_1.gif"))); // NOI18N
I use this poor checking (Peter Lang recommended)which is:System.out.println(getClass().getResource("/Images/yahoo_1.gif")); and it returns null,why? please help me.
解决方案This means, that
getClass().getResource("/Images/yahoo_1.gif")
returnsnull
.JavaDoc states that this happens if
the resource could not be found or the invoker doesn't have adequate privileges to get the resource.
Check if
getResource
really returnsnull
:
System.out.println(getClass().getResource("/Images/yahoo_1.gif"));
Make sure that your path is correct and that it is in your classpath.
EDIT:
I just tried it with NetBeans. I created the following structure
Source Packages Images yahoo_1.gif
and your code worked fine. Is this your structure?
Try to right-click on your application and select
Clean and Build
.这篇关于为什么我的图标处理code抛出NullPointerException?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!