【发布时间】:2011-07-20 06:49:05
【问题描述】:
我尝试了几种方法来将图标添加到 JFrame。当我使用源代码运行它时,每种方法都能完美运行。
例如:
jframe.setIconImage(Toolkit.getDefaultToolkit().getImage("iconimages/icon.png"));
但是当我使用 jar 文件运行它时,它们都不起作用。我知道问题出在图像文件的路径上。我该如何解决这个问题?
编辑:
public Ui() {
initComponents();
setLocationRelativeTo(null);
this.setIconImage(getImageIcon("icon.png").getImage());
}
private ImageIcon getImageIcon(String fileName) {
String imageDirectory = "iconimages/";
imgURL = getClass().getResource(imageDirectory + fileName);
return new ImageIcon(imgURL);
}
我试过了,但现在我得到一个空指针异常。
--------------------------------------------------------------------------------
编辑[解决方案]:我找到了解决方案。
我在路径中额外添加了../,它运行良好!!! :D
ImageIcon imageIcon = new ImageIcon("../imageicons/icon.png");
this.setIconImage(imageIcon.getImage());
感谢大家尝试帮助我。 :)
【问题讨论】:
-
这种将
String传递给ImageIcon构造函数的方法在图像在Jar 中时不起作用(因为它可能在分发时会如此)。 paranoid-android 几天前提供了正确的技术。最好弄清楚如何使它适用于您的项目结构。
标签: java swing icons jframe imageicon