【问题标题】:Change resource folder?更改资源文件夹?
【发布时间】:2014-01-08 07:03:39
【问题描述】:

Java 默认在项目中查找文件,例如。我创建了一个名为计算器的项目并想要一个背景图像,我会将所需的图像放在项目文件夹中。我希望通过更改 Java 查找图像的位置使其更整洁。

我创建了一个名为 res 的文件夹并将其添加到构建路径中,但是如果我将图像放入此 res 文件夹中,它将找不到它。例如:

launcher.setIconImage(new ImageIcon("Logo.png").getImage());  

如果我将 Logo.png 放在 res 文件夹中,它不会更改 IconImage,如果我将它放在项目文件夹中也会。当我说项目文件夹时,我的意思是当你创建一个新的 Java 项目时,eclipse 创建的文件夹。

【问题讨论】:

    标签: java eclipse image directory jframe


    【解决方案1】:

    就像@lwi 所说,您应该将文件夹名称添加到资源的路径中: “res/Logo.png”而不是“Logo.png”。

    如果您希望在导出程序时将图像包含在 JAR 中,我建议您看看这个question

    确保将图像放在源文件夹的子文件夹中(如this 回答中所述)。

    【讨论】:

      【解决方案2】:

      “项目文件夹”只是你的程序启动的文件夹。所以当你从eclipse运行你的程序时,它会在项目的根目录中查找文件“Logo.png”。

      另一方面,如果你导出你的程序并在另一个文件夹中运行它,这个文件夹就是你程序的根文件夹,并且会在那里搜索 PNG。

      如果你想要你的文件在 res 文件夹中,你必须相应地引用 PNG,所以例如你必须写:

      launcher.setIconImage(new ImageIcon("res/Logo.png").getImage());  
      

      如果你想让它更通用,你应该使用某种配置机制,为你的图像提供正确的路径。因此,当您想要更改文件夹名称时,只需更改一处即可。

      【讨论】:

      • 非常感谢您的回答。我现在可以将图像保存在 res 文件夹中。你知道我会如何使用配置机制吗?
      • 这取决于您的应用程序必须有多复杂和灵活。对于一个相对简单的应用程序,我会编写一个具有 File loadImage(String imgName) 方法的单例配置类。此方法会返回一个指向正确位置的 File 对象。
      猜你喜欢
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多