java - 如何设置应用程序目录的对象路径

标签 java swing

我使用位于我的计算机中的图像对象编译了我的应用程序

ImageIcon background = new ImageIcon("D:\\pictures\\background.png")

一旦我改变图片的位置,它似乎就看不见了。然后,我将这些图像复制到应用程序文件夹中,但我不知道如何为它们设置路径。想法是为 JavaFx 应用程序设置图像的路径,该路径应位于同一文件夹中。当我的应用程序位于某人的计算机中时,系统应该知道应用程序文件夹中的图片,无论该文件夹位于何处。 提前致谢

<小时/>

这里我根据建议做了一些更改。

我通过创建新包 resources.images 并将图像拖到其中,将图像直接添加到项目文件夹中。 然后我创建了 BufferedImage img; 并为我需要的每个图像设置路径

  Image bg;
Image fg;
Image object;
img  = ImageIO.read(getClass().getResource(“resources/images/img1.png”));
bg = img;
img = ImageIO.read(getClass().getResource(“resources/images/img2.png”));
  fg  = img; 

等等... 然后我通过paintComponent绘制了这些图像。 一切似乎都很好,在我的环境中编译后它应该可以工作,但是一旦我创建 JavaFx 应用程序并运行 .exe 文件,图像就不会显示,只是空帧。 :( 帮我对付这些家伙。谢谢

最佳答案

如果我正确理解了这个问题,您希望使用定义的图像,然后在您的应用运行的任何计算机上使用这些图像。如果这就是您想要做的,我建议如下:

在源文件夹之一中创建一个名为“images”的包。

访问它

ImageIO.read(YourMainClass.class.getClassLoader().getResource("images/imagename.png"));

(ImageIO.read 只是加载图像的方法的示例,您可以使用任何您喜欢的内容。) 如果您正确导出应用程序,则图像应放入 jar 中,并且可以在任何设备上供您的应用程序访问。

关于java - 如何设置应用程序目录的对象路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54278410/

相关文章:

java - 需要帮助逐行读取文件

java - fireTableStructureChanged 后如何在 JTable 中维护用户指定的表行排序?

java - 按索引查询 GAE 数据存储区

java.lang.ClassCastException : java. lang.Integer 无法转换

java - 用于设置面板背景的 MouseClicked 事件

java - JTable 排序 - 选择一行

java - JFrame全屏对焦。

java - 使用哪个布局管理器?

java - 通过网络有效地发送玩家 Action

java - 我无法使用actionPerformed()方法处理JButton点击事件,不要进入该方法,为什么?