我目前正在使用以下代码段来获取界面的图像。
ImageIcon img = new ImageIcon("./lib/logo.gif");
JLabel lblNewLabel = new JLabel("");
lblNewLabel.setIcon(img);
lblNewLabel.setBounds(28, 65, 140, 100);
但是,当我执行clean和build时,执行jar文件时不会出现图像。什么似乎是问题,我应该把图像文件放在哪里?提前谢谢。
答案 0 :(得分:1)
在您提供的代码段中,图像文件的路径被认为是在文件系统上(类ImageIcon的构造函数将文件名作为参数)。如果要从jar本身加载文件(或图像),则需要使用ClassLoader.getResourceAsStream()。查看this问题。
答案 1 :(得分:1)
“然而,当我执行clean和build时,当我执行jar文件时,图像不会出现。看起来是什么问题,我应该把图像文件放在哪里?”
这是不从文件加载的原因。您希望使用网址
从类路径中将其embedded resources加载在开发过程中,您的图片应位于src
中的某个包中。在构建时,IDE会将您的图像复制到类路径中,并将其添加到jar
然后从代码中的类路径加载。
Class.getResource(..)
会返回一个网址,因此您要执行此操作
ImageIcon icon = new ImageIcon(MyClass.class.getResource("/images/logo.gif"));