【问题标题】:Resource not found in JFrame java app在 JFrame java 应用程序中找不到资源
【发布时间】:2014-05-20 14:26:08
【问题描述】:

我目前正在使用 JFrama 构建一个小型 Java 游戏。我得到了一些坠落的外星人,它们都是图像,并且加载正确。现在我想为播放器放置图像,但是当我这样做时,我的整个项目都烧毁了。我遇到这样的异常

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at gamepackage.Game.draw(Game.java:50)
    at gamepackage.Game.paint(Game.java:45)
    at javax.swing.RepaintManager$3.run(Unknown Source)
    at javax.swing.RepaintManager$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
    at javax.swing.RepaintManager.access$1100(Unknown Source)
    at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
    at java.awt.event.InvocationEvent.dispatch(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

我试图找出问题出在哪里,我最终到了这里 ImageIcon ii = new ImageIcon(this.getClass().getResource(player));

playerprivate String player = "../img/player_64.png";

外星人的图像以相同的方式加载,并且两张图片的方向相同。所以我尝试了很多东西,但到目前为止没有任何效果。

【问题讨论】:

  • 你用来加载图片的那一行应该会抛出异常;试着抓住它。
  • 所以我会抓住我上面粘贴的这个。我不想要这个。我想正确引导图像,因为我需要它:/
  • "../img/player_64.png" 类的包是什么?资源相对于类的位置是什么? 没有这些基本信息,您认为我们怎么能帮助您解决这个问题?我们刚从魔法中解脱出来......
  • 我希望已经这样做的人会告诉我是否存在一些常见错误,因为我验证了资源应该在哪里。最后我最终从头开始重写了整个课程(几乎整个游戏),现在它运行得很顺利。还是谢谢你:)

标签: java image swing jframe embedded-resource


【解决方案1】:

如果您查看getResource() 的规范:

返回:一个 URL 对象,如果没有找到同名的资源,则返回 null

您应该打印此方法返回的 URL 对象。很可能它为 null,这意味着您的路径不正确。

【讨论】:

  • 是的,我打印了路径并且 url 是正确的文件在那里。但由于某种原因,我的 Player 类不知道图像在那里
猜你喜欢
  • 1970-01-01
  • 2011-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-21
  • 1970-01-01
相关资源
最近更新 更多