当我在浏览器中运行applet时,我正在获取nullpointer,而它通过appletviewer工作正常。
titleicon=new ImageIcon(this.getClass().getClassLoader().getResource("image.jpg"));
img=new JLabel(titleicon)
文件位置:.class文件和图像文件都在同一文件夹中。
C:\项目\ game.class
C:\项目\ image.jpg的
我在下面尝试了不同的变体,没有一个在浏览器中工作,但appletviewer都很好:
titleicon=new ImageIcon(this.getClass().getResource("image.jpg"));
titleicon=new ImageIcon(getClass().getClassLoader().getResource("image.jpg"));
答案 0 :(得分:2)
文件位置为
C:\project\game.class
C:\project\image.jpg
Class.getResource
永远不会工作,因为它会在类路径中搜索所需的资源。
使用getResource
假设资源是嵌入的并且是相对于类路径的。
如果没有更多细节,很难提出准确的建议,但我建议您在没有应用程序代码的情况下获取图片,这样就会更容易找到。
如果您没有使用能够管理课程和资源的IDE,那么您需要查看Packaging Programs in JAR Files
请记住,Class#getResource
能够进行相对查找。如果图像没有与加载它们的类存储在同一个包中,那么你需要使用绝对路径...