我想将图像加载到我的程序中,但是我的可运行 jar 也可以这样做。
所以new ImageIcon(URL);
toJLabel
并没有真正起作用。
我所有的 java 文件都在 src 文件夹中,在core
package.json 中。我想把我的图片放到 src 文件夹中,但是在images
包里面。
这可能吗,还是我必须将图像放在项目中的特定位置?
将图像加载到我的程序中以便它在可运行的 jar 中工作的方法是什么?
我通常在 Java Jar 文件中嵌入图像的方式是我的src
文件夹中有一个包,其中包含我的所有图像文件以及一个名为Resource
. 类代码类似于以下内容:
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
public class Resource{
public static BufferedImage loadImage(String imageFileName){
URL url = Resource.class.getResource(imageFileName);
if(url == null) return null;
try {
return ImageIO.read(url);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
public static ImageIcon loadIcon(String imageFileName){
BufferedImage i = loadImage(imageFileName);
if(i == null) return null;
return new ImageIcon(i);
}
}
Provided the Resource
class and all of your image files reside in the same package, all you have to do is create a new JLabel
with the ImageIcon
returned by calling loadIcon([simple filename])
. This will work regardless of whether you're running in an IDE or from a Jar file.