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

时间:2013-01-30 04:03:16

标签: java image swing 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);

这是我在Eclipse中编译代码时GUI的外观 enter image description here

这是我执行Runnable JAR文件后GUI的外观 enter image description here

2 个答案:

答案 0 :(得分:5)

这(由许多人指出)

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

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

如果文件不存在,

ImageIcon将不会抱怨。

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

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

答案 1 :(得分:-2)

将jar和图像保存在同一个文件夹中 保持

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

代码中的