如何在Java JApplet中使用getResources()加载图像?

如何在Java JApplet中使用getResources()加载图像?,java,swing,jar,embedded-resource,japplet,Java,Swing,Jar,Embedded Resource,Japplet,我正在尝试部署一个Java小程序。当我在EclipseApplet查看器中运行它时,它可以很好地加载(尽管它不响应键盘命令——这是后面的问题)。将其导出到JAR并尝试在浏览器中运行后,它始终在以下某个类的此行中提供NullPointerException: private static final ImageIcon NULL_IMAGE = new ImageIcon((new Object()).getClass().getResource("/tiles/blank.png")); 我尝

我正在尝试部署一个Java小程序。当我在EclipseApplet查看器中运行它时,它可以很好地加载(尽管它不响应键盘命令——这是后面的问题)。将其导出到JAR并尝试在浏览器中运行后,它始终在以下某个类的此行中提供NullPointerException:

private static final ImageIcon NULL_IMAGE = new ImageIcon((new Object()).getClass().getResource("/tiles/blank.png"));
我尝试将这个类的第一次使用从init()移动到start(),没有任何更改。在终端窗口中运行“jar-tf applettest.jar”可以确认/tiles/blank.png确实存在于jar中。
那么,在导出这个罐子时,我会错过什么呢?我是否应该忘记小程序版本而使用JNLP?

将PNG图像移动到与类相同的包中,然后尝试以下操作:

private final ImageIcon NULL_IMAGE = new ImageIcon(getClass().getResource("/blank.png"));`

请注意,
NULL\u IMAGE
变为
private final
,而不是
private static final

“我应该忘记applet版本并使用JNLP吗?”-这通常是个好主意,但可能无法解决当前的问题。至于小程序不响应击键,这是
KeyListener
的一个常见问题,通过尝试使用
新图像图标(YourClass.class.getResource(“/tiles/blank.png”))解决了这个问题?使用class.class似乎可以解决映像问题…或者至少,给我一个不同的错误,这次是说它无法连接到服务器数据库。关于密钥问题,我使用的是密钥绑定,而不是密钥侦听器。我应该注意到,有一个独立版本没有任何问题,至少在从Eclipse运行时是这样。我想我会尝试用JNLP部署它。啊,好吧,我想第二个问题与这个问题无关,但我建议这是一个小程序严格安全限制的问题,我猜“将您的PNG图像移动到与类相同的包中,然后试试这个:”给定
/
前缀,只有在调用它的类位于默认包中时,这才有效。