加载图像程序(用罐子里工作)(Load image to program (to work with

2019-10-17 04:57发布

我想将图像加载到我的计划,但在客场,我可运行罐子也能这样做。
因此, new ImageIcon(URL);JLabel不能真正发挥作用。

我所有的Java文件都在src文件夹中,在core封装。 我希望把我的图片src文件夹,但里面images包。

这是可能的,或者我必须把我的形象的具体位置我的项目里面?

什么会如此它的工作原理可运行罐子里面图像加载到我的程序的方法吗?

Answer 1:

我通常嵌入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);
    }
}

所提供的Resource类和所有图像文件驻留在同一个包,你所要做的就是创建一个新JLabelImageIcon调用返回loadIcon([simple filename]) 无论你是在一个IDE或从一个JAR文件运行这将工作。



文章来源: Load image to program (to work with jar)