1

我想将图像加载到我的程序中,但是我的可运行 jar 也可以这样做。
所以new ImageIcon(URL);toJLabel并没有真正起作用。

我所有的 java 文件都在 src 文件夹中,在corepackage.json 中。我想把我的图片放到 src 文件夹中,但是在images包里面。

这可能吗,还是我必须将图像放在项目中的特定位置?

将图像加载到我的程序中以便它在可运行的 jar 中工作的方法是什么?

4

1 回答 1

2

我通常在 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.

于 2012-09-05T21:55:51.787 回答