Java ImageIcon未显示为图标

Java ImageIcon未显示为图标,java,swing,awt,Java,Swing,Awt,我正在尝试将一组图像设置为帧的图标。如果我使用getClass.getResource(path),它可以正常工作,但我需要在静态方法中运行此代码,因此无法使用getClass()。最大的区别是什么?为什么它不使用一条路径 final ImageIcon icon_x16 = new ImageIcon( "Icons/icon_x16.png"); final ImageIcon icon_x20 = new ImageIcon( "

我正在尝试将一组图像设置为帧的图标。如果我使用
getClass.getResource(path)
,它可以正常工作,但我需要在静态方法中运行此代码,因此无法使用getClass()。最大的区别是什么?为什么它不使用一条路径

        final ImageIcon icon_x16 = new ImageIcon( "Icons/icon_x16.png");
        final ImageIcon icon_x20 = new ImageIcon( "Icons/icon_x20.png");
        final ImageIcon icon_x32 = new ImageIcon( "Icons/icon_x32.png");
        final ImageIcon icon_x40 = new ImageIcon( "Icons/icon_x40.png");
        final ImageIcon icon_x64 = new ImageIcon( "Icons/icon_x64.png");
        final ImageIcon icon_x256 = new ImageIcon( "Icons/icon_x256.png");
        final List<Image> icons = new ArrayList<Image>();
        icons.add(icon_x16.getImage());
        icons.add(icon_x20.getImage());
        icons.add(icon_x32.getImage());
        icons.add(icon_x40.getImage());
        icons.add(icon_x64.getImage());
        icons.add(icon_x256.getImage());
        frame.setIconImages(icons);
final ImageIcon icon_x16=新图像图标(“Icons/icon_x16.png”);
final ImageIcon icon_x20=新的ImageIcon(“Icons/icon_x20.png”);
最终图像图标icon_x32=新图像图标(“Icons/icon_x32.png”);
最终图像图标图标_x40=新图像图标(“Icons/icon_x40.png”);
最终图像图标图标_x64=新图像图标(“Icons/icon_x64.png”);
final ImageIcon icon_x256=新的ImageIcon(“Icons/icon_x256.png”);
最终列表图标=新的ArrayList();
icons.add(icon_x16.getImage());
添加(iconx20.getImage());
icons.add(icon_x32.getImage());
icons.add(icon_x40.getImage());
添加(icon_x64.getImage());
添加(iconx256.getImage());
frame.setIconImages(图标);

相反,但我需要在静态方法中运行此代码,因此我无法使用getClass()
-是的,您可以,
您的AwesomeClass.class.getResource(…)
图像图标(字符串)
正在文件系统上查找文件。除非您提供绝对路径,否则它将从执行应用程序的位置查看,这在这种情况下对您没有帮助,但我需要此代码以静态方法运行-不,您不需要。这表明程序设计很差。您的方法不需要是静态的。谢谢@MadProgrammer
YourAwesomeClass.class.getResource(…)
解决了我的问题,我还意识到我的.class文件存储在不同的文件夹中,因此路径是错误的。@Artsiomisiarheyeu我是新手-不是借口。你所需要做的就是阅读任何教科书或教程来找到更好的结构化代码。例如,从上的教程中的
LabelDemo
示例开始。为所有Swing基础知识保留一个指向整个教程的链接。