微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的图像没有在这个路径中加载,而是在另一个路径中?

如何解决为什么我的图像没有在这个路径中加载,而是在另一个路径中?

我尝试将图像放到 JButton 上。写下图像的路径后,运行程序,然后图像不在按钮上。下面的代码示例:

public static JButton start = new JButton(new ImageIcon("resources//img//menu//Start_Game.png"));

“资源”文件夹位于“src”文件夹中。 Here is the Hirarchy in Eclipse

在我仔细检查我拼写正确后,我输入了另一条路径。

public static JButton start = new JButton(new ImageIcon(System.getProperty("user.home") + "//Tindir//Hauptmenue//Start_Game.png"));

突然就成功了。很明显,第一条路径不正确。

问题是否有办法在与代码相同的项目文件夹中输入图像的路径?

解决方法

是的,但不是那样 - 这些参数是文件名,并且 Java 代码不会部署为一堆文件。它被部署为一个 jar 文件。 jar 文件中的条目不算,并且永远不能与此 API 一起使用。

所以,不要使用这个电话。使用另一个接受 URL 的方法,因为您当然可以将文件或 jarfile 中的条目表示为其中之一:

MyClass.class.getResource("Start_Game.png")

这就是您在该代码中放置的而不是 "resources/etc/Start_Game.png" 的内容。这会在与 Start_Game.png 完全相同的位置查找名为 MyApp.class 的资源,即使该资源是在 jar 文件中找到的,从数据库中加载,从互联网实时流式传输 - 无论如何。您使用的是相同的机制。

如果您的 Start-Game 文件位于其他位置,请以 / 开头。您似乎想要 /img/menu/Start_Game.png 在这里。

这个技巧是一种了解你在做什么的简单方法:

class MyClass {
    public static void main(String[] args) {
        System.out.println(MyClass.class.getResource("MyClass.class"));
    }
}

你会用那个输出来弄清楚。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。