首页 > 解决方案 > Java中的相对图像路径

问题描述

我在用:

ImageIcon ii = new ImageIcon(getClass().getResource("ball.png"));

image = ii.getImage();

访问与我的 .java(记事本)文件(以及编译后的类文件)位于同一文件夹中的图像。但是,我似乎无法运行,只能编译。请问有什么想法吗?

我可以让它在 Eclipse 中工作,但不能在用记事本编写的直接 Java 文件中工作。

对不起,没有回到这个问题,但我一直在尝试别的东西。

我试过: ImageIcon("C:/path/to/your/appication/ball.png");

它似乎不起作用。

我正在尝试找到一种方法来从直接的 Java 记事本文件中引用图像,而不是使用任何 IDE。当我在 Eclipse 中拥有这些类时,它们可以工作,在获取 Java 文件并将它们复制到其他地方之后,我删除了包引用,我可以编译,但是在我尝试运行之后,我得到的是以下错误消息:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "java.net.URL.toExternalForm()" because "location" is null
    at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:217)
    at Ball.loadImage(Ball.java:26)
    at Ball.initBall(Ball.java:18)
    at Ball.<init>(Ball.java:10)
    at Board.gameInit(Board.java:50)
    at Board.initBoard(Board.java:43)
    at Board.<init>(Board.java:34)
    at Breakout.initUI(Breakout.java:19)
    at Breakout.<init>(Breakout.java:14)
    at Breakout.lambda$main$0(Breakout.java:32)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

标签: javaimagerelative-path

解决方案


推荐阅读