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



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

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

";资源";文件夹在";src";文件夹这是Eclipse 中的Hirarchy

在我仔细检查后,我把所有的东西都拼对了,我换了一条路。

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"。这会在与MyApp.class完全相同的位置查找名为Start_Game.png的资源,即使它是在jar文件中找到的,从数据库中加载的,从互联网上直播的——不管怎样。你在使用同样的机制。

如果您的"开始游戏"文件在其他地方,请从/开始。你似乎想要/img/menu/Start_Game.png在这里。

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

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

你会用这个输出来解决的。

最新更新