JButton上的ImageIcons没有出现在Runnable JAR文件中

我的GUI上有6个JButton都有图像,当我编译并运行代码时,JButtons上的所有图像都很好地显示但是在可运行的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的外观 在此处输入图像描述

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

这(由许多人指出)

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

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

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

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

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

只需将jar和图像保存在同一文件夹中即可

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

在代码中