首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中更改默认应用程序图标?

如何在Java中更改默认应用程序图标?
EN

Stack Overflow用户
提问于 2008-10-16 18:58:37
回答 10查看 139.1K关注 0票数 65

我正在使用NetBeans,试图将熟悉的Java咖啡杯图标更改为保存在jar文件的资源目录中的png文件。我找到了许多不同的网页,声称他们有一个解决方案,但到目前为止,他们都没有工作。

下面是我目前所拥有的(省略try-catch代码块):

代码语言:javascript
复制
URL url = new URL("com/xyz/resources/camera.png");
Toolkit kit = Toolkit.getDefaultToolkit();
Image img = kit.createImage(url);
getFrame().setIconImage(img);

包含此代码的类位于com.xyz包中,如果这有什么不同的话。该类还扩展了JFrame。这段代码在第一行抛出了一个MalformedUrlException。

谁有一个有效的解决方案?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2008-10-16 19:01:24

代码语言:javascript
复制
java.net.URL url = ClassLoader.getSystemResource("com/xyz/resources/camera.png");

路径的前面可能需要/,也可能不需要。

票数 78
EN

Stack Overflow用户

发布于 2013-01-16 17:41:28

您可以简单地转到Netbeans,在设计视图中,转到JFrame属性,选择图标图像属性,使用“自定义代码”选择设置表单的iconImage属性,然后在Form.SetIconImage()函数中放入以下代码:

代码语言:javascript
复制
Toolkit.getDefaultToolkit().getImage(name_of_your_JFrame.class.getResource("image.png"))

别忘了导入:

代码语言:javascript
复制
import java.awt.Toolkit;

在源代码中!

票数 14
EN

Stack Overflow用户

发布于 2008-10-16 20:37:30

或者将图像放在相对于类的位置,而不需要字符串本身中的所有包/路径信息。

代码语言:javascript
复制
com.xyz.SomeClassInThisPackage.class.getResource( "resources/camera.png" );

这样,如果您将类移动到不同的包中,您不必查找所有字符串,只需移动类及其资源目录即可。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/209812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档