java-读取可能更改的图像文件路径

java-读取可能更改的图像文件路径,java,Java,我正在用Java中的swing创建一个简单的GUI,只想在框架中显示一个JPEG图像作为横幅。我的图像工作正常,但文件路径可能会更改,因为这将发送给其他人。图像存储在我将发送给其他人的文件夹中。我正在寻找一种方法,以确保无论文件夹已被移动到什么位置,图像将显示。我是这个网站的新手,对Java也相当陌生。提前谢谢你的帮助 相关代码: ImageIcon numberImage = new ImageIcon("C:\\Users\\Me\\Desktop\\numberGame\\numbers.

我正在用Java中的swing创建一个简单的GUI,只想在框架中显示一个JPEG图像作为横幅。我的图像工作正常,但文件路径可能会更改,因为这将发送给其他人。图像存储在我将发送给其他人的文件夹中。我正在寻找一种方法,以确保无论文件夹已被移动到什么位置,图像将显示。我是这个网站的新手,对Java也相当陌生。提前谢谢你的帮助

相关代码:

ImageIcon numberImage = new ImageIcon("C:\\Users\\Me\\Desktop\\numberGame\\numbers.jpg");
Image image = numberImage.getImage();
Image newimg = image.getScaledInstance(300,120,java.awt.Image.SCALE_SMOOTH);
numberImage = new ImageIcon(newimg);
JLabel imageLabel = new JLabel("", numberImage, JLabel.CENTER);
JPanel imagePanel = new JPanel(new BorderLayout());

imagePanel.add(imageLabel, BorderLayout.CENTER );

您希望使用相对路径而不是绝对路径。这里有一个非常清楚的快速解释


祝你好运

为了确保图像可以在任何上下文中显示,必须指定相对路径而不是绝对路径

你可以改变:

ImageIcon numberImage = new ImageIcon("C:\Users\Me\Desktop\numberGame\numbers.jpg"); 
致:

这应该适用于其他环境(使用其他不同的路径)。 或者,如果图像位于程序中的某个目录中,请放置“\imageFolder\numbers.jpg”


这应该是可行的,主要的改变是将绝对路径替换为相对路径。

将图像放入类路径,然后它将始终通过
“classpath:/package/name/file.jpg”
路径可用。您可能希望查看maven以构建项目。可能是@nhouser9的重复,但如果程序不在Jar中,指定相对路径应该可以解决此问题。我认为如果不是罐子的话,这个解决方案非常简单。在我所有的搜索中,我没有看到一个像这样简单的解决方案。非常感谢。
ImageIcon numberImage = new ImageIcon("numbers.jpg");