如何使用 ImageIcon 将图像添加到我的 GUI?

问题描述

我对如何在 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 中读取)。