我终于完成了我的游戏,我想将它分发给几个朋友,我唯一的问题是我可以将它变成可运行的jar文件,它在我的笔记本电脑上运行得非常好,但是当我在网上上传时并向其他人发送链接,当他们下载时,图像不存在。我搜索了解决方案,但是我遇到的那些我根本不明白,有人可以向我解释一下吗? :3
以下是我的代码中的所有图片。
游戏类
Graphics2D g2d = (Graphics2D) g;
ImageIcon ic= new ImageIcon ("D:/USER/Desktop/Other/Snow.jpg");
g2d.drawImage(ic.getImage(),0,0,null);
用户类
public Image useriamge(){
ImageIcon icon = new ImageIcon("D:/User/Desktop/Other/us.png");
return icon.getImage();
障碍类
ImageIcon icon = new
ImageIcon("D:/User/Desktop/Other/ob.png");
return icon.getImage();
主类
final JFrame Starting_menu = new JFrame ("Game");
ImagePanel background = new ImagePanel("D:/USER/Desktop/Other/Snow.jpg");
Starting_menu.add(background);
final JFrame Help_screen = new JFrame ("Help menu");
ImagePanel background2 = new ImagePanel("D:/USER/Desktop/Other/HelpScreen.jpg");
Help_screen.add(background2);
答案 0 :(得分:2)
您指定的路径特定于您的计算机。
您可以执行的操作是将图像存储在项目的src
文件夹中,然后使用getClass().getResource("Snow.png")
引用它们。
我建议为您的图片创建一个新的包,可能会为资源调用res
。当您需要加载图片时,您需要getClass().getResource("res/Snow.png")
答案 1 :(得分:1)
好吧,如果我错了,请更正我,但是您正在从硬盘驱动器上的随机文件夹中加载图像。当您将游戏发送给某人时,.jar文件将在您在代码中写入的位置查找该图像文件。如果您的朋友在同一位置没有图像文件夹,则.jar文件将无法找到并加载图像。如果您只是将图像放在java_game_project_folder / images中,则可以使用“images / filename.jpeg”加载它们。您还可以在.jar文件中包含资源文件夹。
答案 2 :(得分:0)
发生这种情况的原因是您在计算机上引用特定文件。他们的计算机上没有的文件。将图片与jar一起发送,并包含安装脚本以将它们放在正确的位置,或者说明放置它们的位置。
或者将它们打包在jar中 - 按照约定在资源文件夹中 - 以便它们始终可用。但是,在这种情况下,如果不更改jar,您将无法更改图像。