问题描述
我尝试将图像放到 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"));
}
}
你会用那个输出来弄清楚。