4

我的 GUI 上有 6 个 JButton,上面都有图像,当我编译并运行代码时,JButton 上的所有图像都完美显示,但在可运行的 JAR 文件中,JButton 上的图像没有显示出来。我该如何解决这个问题?

我在我的代码中使用此方法在 JButtons 上显示图标

ImageIcon SettingsIc = new ImageIcon("bin/images/settings.png");
jb1 = new JButton(SettingsIc);
jb1.setFocusPainted( false );
//jb1.setBorderPainted(false); 
jb1.setContentAreaFilled(false);

这是我在 Eclipse 中编译代码时 GUI 的外观 在此处输入图像描述

这是我的 GUI 在执行 Runnable JAR 文件后的样子 在此处输入图像描述

4

2 回答 2

5

这(正如许多人指出的那样)

ImageIcon SettingsIc = new ImageIcon("bin/images/settings.png");

建议您尝试从bin/images文件系统外加载图像。这是从应用程序执行点开始的相对路径。

ImageIcon如果文件不存在,不会抱怨。

如果可能的话,最好将资源嵌入到 Jar 文件中(这将使部署更容易)并使用类似getClass().getResource("/bin/images/settings.png")加载图像的方法。

如果可能,您应该尝试使用来加载图像,如果/指向的资源不存在(或无效)ImageIO.read(URL),它将引发异常。FileURL

于 2013-01-30T04:13:57.197 回答
-2

只需将 jar 和图像保存在同一个文件夹中并保留

ImageIcon icon = new ImageIcon("image.jpg");

在代码中

于 2014-05-28T05:36:32.053 回答