setIconImage()

时间:2015-08-31 09:53:15

标签: java swing awt

因此,在创建JFrame个应用时,我仍然是一个新手。我已经决定通过创建一个项目的爱好来学习更多关于它的知识,一切进展顺利,我已经学到了很多东西,但现在我正在努力学习如何使用setIconImage()因为,你知道,窗口左上角的图标(在Windows中,不确定它在Mac OSX和Linux上显示的角落)。我google了很多,但是无法找到任何100%工作的东西,无论是在Eclipse中工作,还是我得到NullPointerExceptions。据我所知,当您从桌面运行.jar文件时,它会从您的PC的根目录开始搜索图标图像,而不是.jar&# 39; s根目录。任何人都有这方面的一些提示可能有帮助吗?我在下面为我处理main方法的类粘贴了我的源代码,其他类处理创建JFrame,在这种情况下做密码生成(这是微小的一部分)我为我的办公室制作的密码生成器应用程序)

源代码:

    public class ShowWindowDemo()
    {
        private static final String ICON_PATH = "src\\images\\p_gen.png";

        public static void main(String[] args)
        {
            WindowDemo() gui = new WindowDemo();
            gui.setVisible(true);
            gui.setResizable(false);
            gui.setIconImage(Toolkit.getDefaultToolkit().getImage(
                ShowWindowDemo.class.getResource(ICON_PATH)));
            gui.setLocationRelativeTo(null);
            gui.setTitle("PassGen v1.0.6");
        }
    }

我的.png图片的文件夹结构为src/images/。每当我尝试使用上面提到的源代码在Eclipse中运行我的应用程序时,它打开正常,但在我的控制台中我得到NullPointerException。我使用

运行了应用程序
    gui.setIconImage(Toolkit.getDefaultToolkit().getImage(ICON_PATH));

并且100%正常工作。

对此的任何帮助都会非常感激,我似乎对这一点感到困惑。

2 个答案:

答案 0 :(得分:1)

尝试使用/images/p_gen.png作为ICON_PATH。 我正在获取这样的图标图像(我使用的是javafx,但它应该类似):

primaryStage.getIcons().add(new Image("/images/four85.png"));

答案 1 :(得分:0)

尝试在项目中创建一个名为“Images”的文件夹,然后复制该文件夹中的所有图像。然后测试此代码:

gui.setIconImage(new ImageIcon(getClass().getResources("Images/image_name.png"),"An image"));

希望有所帮助。