Java 将路径链接到随处可见的图像图标

Java 将路径链接到随处可见的图像图标,java,swing,jframe,Java,Swing,Jframe,我最近在JFrame中编写了程序。我使用的是staticimageicon img=newimageicon(“X:/workspace/eclipse/Timer5/rsc/icon.png”)和f1.setIconImage(img.getImage())显示JFrame的图标。我的问题是,如果将程序导出为可运行的jar,那么其他计算机上的路径将不再工作,图标将显示标准Java图标 因为我可以指定这样的路径logo=ImageIO.read(getClass().getResource(“/

我最近在JFrame中编写了程序。我使用的是
staticimageicon img=newimageicon(“X:/workspace/eclipse/Timer5/rsc/icon.png”)
f1.setIconImage(img.getImage())
显示JFrame的图标。我的问题是,如果将程序导出为可运行的jar,那么其他计算机上的路径将不再工作,图标将显示标准Java图标

因为我可以指定这样的路径
logo=ImageIO.read(getClass().getResource(“/logo.png”)
g.drawImage(logo,657,640,485,85,空)
在我的label类(扩展了JLabel)中,它可以在其他计算机或移动的文件上工作,我想问一下这是否也适用于图像图标。如果我像使用
ImageIO.read()
一样输入路径,则不会加载任何图标

我想问一下,这是否也适用于图像图标

阅读
ImageIcon
API

您将找到一个构造函数,它将
图像
作为参数

因此,是的,您可以并且应该使用
getResource()
方法:

Image image = ImageIO.read(...);
ImageIcon icon = new ImageIcon( image );
JLabel label = new JLabel( icon );