嘿,是否可以在不使用 java 中的完整文件位置的情况下从文件中获取图像?我下面的代码仅适用于完整的文件路径:
Icon icon = new ImageIcon("/Users/MyMac/Documents/Project/Software/Project/src/UI/Images/default_pic.png");
是否可以这样使用文件路径?:
Icon icon = new ImageIcon("/src/UI/Images/default_pic.png");
"/src/UI/Images/default_pic.png" 是绝对路径,所以它会在根目录中查找 src 目录,然后在其中查找 UI 子目录,等等。这不是您想要的。
您可以使用诸如“src/UI/Images/default_pic.png”之类的相对路径(注意它不以“/”开头),但正如它的名字所说,它是相对于当前目录的。因此,如果您的当前目录是 /Users/MyMac/Documents/Project/Software/Project (或包含同一子路径中的文件的任何目录),它将起作用,否则不会。
最后,另一种方法是通过类路径访问文件。考虑到项目可以打包成 jar 文件,图像文件可能不是磁盘上的单独文件,但您仍然可以获取 URL 或 InputStream 来访问它。在 Class 和 ClassLoader 中搜索 getResource 和 getResourceAsStream。