更改Java应用程序的桌面图标

8

提前感谢您花时间阅读我的问题,我非常感激您能给出任何评论、答案、见解、技巧和批评。

我正在寻找一种有用的方法来更改Java应用程序的桌面图标。我已经调查了几天了,但没有找到准确的结果。

在您将此标记为重复内容并称其为重复之前,我阅读了如何更改Java中的默认应用程序图标?等其他人提出的这个问题,但这并不能解决我的具体问题。我知道他们的方法利用了一个URL位置而不是导入,但我正试图学习如何使用导入(如果可能的话)。当我尝试使用他们的按源位置更改时。除此之外,url示例似乎无法用于存储在计算机上的文件。我在运行它时收到“未捕获的错误”消息。

我使用以下格式声明我导入到NetBeans的图像:

Image image = new ImageIcon("imported.png").getImage();
frame.setIconImage(image);

现在这对于显示在工具栏中的图标来说是好的,并且它也出现在框架左上角,但当我清除并构建应用程序时,我仍然有Java咖啡杯作为应用程序的图标。

如果需要使用我正在尝试的代码的其他资源:

import java.awt.Image;
import javax.swing.*;

public class Check {
    JFrame frame;
    public static void main(String[] args) {
        new Check().go();
    }
    private void go() {
        frame = new JFrame("Test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Image image = new ImageIcon("owl.gif").getImage();

        frame.setIconImage(image);
        frame.setVisible(true);
        frame.setSize(300, 300);
    }
}

“owl.gif”是我用鼠标拖放的方式导入NetBeans中的,这个方法在我阅读的一本专注于NetBeans的书籍中有描述。

我正在寻找一种方法,在构建后将我已经保存在电脑上的文件作为我的应用程序的桌面图标。


你可以简单地使用以下代码:Image image = new ImageIcon(Check.class.getResource("/owl.gif")).getImage();。更多信息请查看我的回答 :-) - nIcE cOw
1
或者您可以查看这个方法,我希望这可能会对所给定的主题有所帮助 :-) - nIcE cOw
1
@nIcEcOw 喜欢ASCII艺术风格的目录结构。 :) - Andrew Thompson
@nIcEcOw 当我尝试第一个示例时,我收到了一个NullPointerException。我是否可能导入文件不正确?当我将其拖动到文件选项卡下的主类中时,它会显示出来,但由于某种原因无法调用。 - Jeremy Johnson
@JeremyJohnson:请参考我的第一条评论中的链接,其中有一个适用于NetBeans的链接。简单来说,按照我评论的方式,图像必须与包并列,但是如果您删除第一个正斜杠,则图像应该存在于包含上述语句的.class文件旁边。如果仍然不清楚,请观看第一条评论中答案的最后一个链接,该链接的第一个示例可以让您了解目录结构的想法 :-) - nIcE cOw
1个回答

4
部署Java桌面应用程序的最佳选项通常是使用Java Web Start1进行安装。JWS适用于Windows,OS X和*nix。
JWS提供了许多有吸引力的功能,包括但不限于闪屏、桌面集成、文件关联、自动更新(包括懒惰下载和编程控制更新)、按平台、架构或Java版本分区原生和其他资源下载、配置运行时环境(最小J2SE版本、运行时选项、RAM等)以及使用扩展轻松管理共享资源。
“桌面集成”将使用在启动文件中标识的图像作为桌面或菜单项图标。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接