如何将图标作为类路径资源添加到使用WindowBuilder创建的SWT窗口中?

时间:2010-12-23 19:49:52

标签: java eclipse swt classpath windowbuilder

我正在尝试将* .ico文件中的外部图标添加到我正在使用WindowBuilder设计窗口创建的窗口中。 我可以选择shell,它会显示一个“图像”属性字段。 alt text 这会打开图像选择器对话框: alt text

如何将此图标中的图标显示为类路径资源?如果给出了绝对路径,则图像有效,但我不想在我的应用程序中使用该选项。

谢谢!

6 个答案:

答案 0 :(得分:27)

要轻松地在我的类路径中添加一个图标,我找到了我想要的图标,右键单击它,选择“复制”,然后转到Eclipse中我的项目的一个软件包,右键单击,然后选择“粘贴”。 下次我打开图像选择器对话框时,我的本地软件包将图标列为可用的类路径资源,我选择了它。 image chooser

我能够将项目导出到可运行的JAR,图标仍然有效。

答案 1 :(得分:6)

我找到的解决方案是创建一个包含图像的jar并将其添加到类路径中。然后,您可以在第二个屏幕截图中从对话框中选择它们。

我记得这曾经用于构建路径中的目录。现在它似乎被迫放在一个罐子里。

答案 2 :(得分:3)

要向项目中添加任何类型的支持图像,只需右键单击项目的“src”文件夹,然后单击“新建...包...”,然后在“名称”下输入“资源”。之后,您只需要在那里复制图像。 当您将项目导出到可运行的JAR时,所有资源都会一起运行并运行正常。

答案 3 :(得分:2)

我不知道如何在WindowBuilder中执行此操作,但您可以在通过ImageShell构建setImage()时指定setImages()资源。我建议使用后者,因为它为平台提供了各种分辨率图标,包括窗口的控制框,Windows任务栏和alt +标签列表。

Take a look at this snippet.

从资源加载:

final Image small = new Image(shell.getDisplay(),
        "resources/images/icon_16.png");
final Image large = new Image(shell.getDisplay(),
        "resources/images/icon_32.png");
final Image[] images = new Image[] { small, large };
shell.setImages(images);

在这个例子中,我有一个子文件夹“resources”,包含“images”,然后是两个PNG。指定资源JAR应该以类似的方式工作,尽管我还没有尝试过。

答案 4 :(得分:1)

在我的例子中,WindowBuilder识别出* .ico格式,但没有用我的自定义图标替换默认的Java图标。只有当我将* .ico转换为* .png(through this handy online tool)时,WindowBuilder才最终将默认的Java图标更改为我的自定义“图标”,即使它确实是一个PNG。我希望WindowBuilder能够识别ICO格式。

答案 5 :(得分:0)

在Eclipse Juno 4.2中。 Image选择器通常不会显示资源文件夹(例如,来自Maven结构化的项目:src / main / resources。可能这是一个错误。

如果删除然后在Java Build Path窗口(Source Tab)中使用include选项显式添加资源文件夹,它将弹出。即使在删除“包含”选项并将其设置回“全部”后,它仍会显示。

当然,右键单击src / main / resources文件夹时,可以直接从上下文菜单中删除和添加。

相关问题