JButton上的ImageIcons未显示在Runnable JAR文件中

Adi*_*she 4 java swing image awt embedded-resource

我的GUI上有6个JButton都有图像,当我编译并运行代码时,JButtons上的所有图像都很好地显示但是在可运行的JAR文件中,JButtons上的图像没有出现..我该如何解决这个问题?

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

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

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

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

Mad*_*mer 5

这(由许多人指出)

ImageIcon SettingsIc = new ImageIcon("bin/images/settings.png");
Run Code Online (Sandbox Code Playgroud)

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

ImageIcon 如果文件不存在,我们不会抱怨.

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

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

  • @ user2003602另外 - 确保你使用`getClass().getResouce(...)`而不仅仅是普通的字符串值.`String`值表示文件资源,嵌入资源不是文件. (2认同)