无法在Jar文件中显示图像

时间:2020-02-18 22:20:49

标签: java image swing

我知道之前已经有人问过这个问题,但是尝试所有变体后我无法使它起作用。我有一个小程序,我希望启动框架上显示图像。我可以通过将jar与图像放在同一文件夹中并对其进行引用来实现此目的,但是,当我尝试在jar文件本身中进行引用时,总是会出错:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException

我正在使用的代码是这样:

private void imagePanel() {
    setLayout(new BorderLayout());
    BufferedImage image;
    try {
        image = ImageIO.read(this.getClass().getResource("/src/ticketMaster/img/logo.png"));
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    add(new JLabel(new ImageIcon(image)), BorderLayout.CENTER);
}

我不确定路径是否不正确,我在名为img的程序包中创建了一个img文件夹,其中包含徽标。我尝试了所有的变化

/img/logo.png
/ticketMaster/img/logo.png
/src/ticketMaster/img/logo.png

我无法像在罐子外部引用图像那样加载图像。我也使用了resourceasstream,因此没有任何运气。

这里有什么想法吗?

1 个答案:

答案 0 :(得分:-2)

我不知道您的文件夹或包结构,但是您可以尝试删除在getRessource()方法中给定的路径的第一个“ /”,这可能是在寻找绝对路径。