因此,在创建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%正常工作。
对此的任何帮助都会非常感激,我似乎对这一点感到困惑。
答案 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"));
希望有所帮助。