问题描述
我对如何在 Java 中将图像添加到我的 GUI 感到非常困惑。下面是我的代码,我使用 package usename;
import name.Begin;
public Useaname {
public static void main(String[] args){
Begin b = new Begin();
b.displayName();
}
}
来实现图像“map.png”,但是当我运行这个程序时,图像没有出现。这是因为它与我的 .java 文件不在同一个文件夹中,还是有其他问题?
ImageIcon
解决方法
Java 将在实际工作目录中搜索图像,即 java 启动的目录。这取决于它是如何启动的 - 如果是命令行,则与命令行使用的相同; IDE 通常有一些设置(例如 eclipse 的默认值是项目主目录)。打印它的简单方法System.out.println(new java.io.File("").getAbsolutePath());
不幸的是 new ImageIcon
如果找不到文件,则不会抛出异常 - 图标大小(getIconHeight()
或 getIconWidth()
)将设置为 {{ 1}} 如果没有找到。 -1
更适合从文件中读取图像,因为图像不是应用程序的一部分;否则,图像是应用程序的一部分,应使用来自类或类加载器的 ImageIO
。
getResource()
文件的位置在执行过程中根本不相关。如果使用类加载器中的 .java
方法,.class
文件(类路径)的位置很重要(推荐!特别是如果图像/文件应该从 JAR 中读取)。