1

我想在 Java 中为我的应用程序设置一个图标。我正在使用 Eclipse。

我不知道将图标(以及配置文件)存储到项目中的方式是否是最好的(我接受学习最佳方式的建议)。

无论如何,我正在尝试将此行用于我的扩展 JFrame 类:

setIconImage(Toolkit.getDefaultToolkit().getImage("img/icon.png"));

但不起作用:仍然带有咖啡杯图标。

如何将图标访问到包 estacionBase.img 中?有更好的地方存放吗?那时我将如何访问它?

在此处输入图像描述

4

3 回答 3

3

与其将资源与源文件一起保存,不如将其保存src在名为res. 将源与资源分开是个好主意。

至于图标,请使用setIconImage(ImageIO.read("res/icon.png"));

然而:

如果您的图标在 a 内jar,则必须使用ImageIO.read(Classname.class.getResource("res/icon.png"));

我认为这是正确的,但是请注意您的相对路径,如果它不起作用,首先要检查的是您的路径相对于它的执行位置(无论是来自 .class 目录还是来自某个阶段的 jar) .

于 2012-07-31T08:14:11.027 回答
1

对于保存问题:在您的项目中创建一个新的源文件夹并将其命名为res左右。然后你可以把你的资源放在那里。由于res被标记为源文件夹,它也将在您的 jar 中。

对于加载,您可以使用

setIconImage(ImageIO.read("res/icon.png"));

或者

setIconImage(
    new ImageIcon(getClass().getResource("res/icon.png"), description).getImage()
);

当然,也可以在源代码之间放置图像。大多数官方 Java 演示(例如这里)都是这样做的。它更紧凑。不过,我不会将这种技术用于大型项目。它会变得非常混乱。

于 2012-07-31T08:32:01.557 回答
0

尝试按照其他人的建议将您的图像放入第二个文件夹,例如 /res 然后使用代码:

setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("path/to/icon.png")));
我为我的应用程序尝试了这个,并且每次都有效。另外,尽量不要将图像放入包中。

于 2013-08-13T10:55:14.470 回答