我一直在互联网上试图找出如何在编译成可运行的jar后显示图像图标。我发现这个问题为时已晚,我在eclipse之前多次运行我的程序并且每件事都有效,现在6个月后项目完成,我用eclipse编译我的程序,没有音频或图像工作。在网上阅读,它说有关图像文件夹的位置应该在jar里面,但是我的不在那里?
我玩过图片文件夹,在源文件夹中移动它,但它没有用。我觉得它可能与资源的路径有关...但这只是猜测。
我已经构建了一个具有相同结果的简单程序...在eclipse中运行时工作,但在编译时不工作。有人可以通过修改下面的代码向我展示一个例子。提前谢谢。
消息来源代码:
package ImageIcon;
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Gui {
public static JLabel c;
public Gui(){
JFrame f = new JFrame();
JPanel p = new JPanel();
p.setBounds(0, 0, 120, 200);
p.setBackground(Color.black);
p.setLayout(null);
JPanel bg = new JPanel(new BorderLayout());
bg.setBounds(50, 50, 15, 15);
bg.setBackground(Color.white);
ImageIcon a = new ImageIcon("images/success.jpg");
c = new JLabel(a);
f.setSize(100, 200);
f.setLayout(null);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.add(p);
p.add(bg);
bg.add(c);
}
public static void main(String[] args) {
new Gui();
}
}
答案 0 :(得分:4)
使用您当前的目录设置,images
目录甚至不会内置到jar中。尝试提取它,你很可能会发现它不在那里。
您可以通过文件夹中没有小包徽标这一事实来判断,如resources
所示
类路径(/ jar)中内置的唯一默认目录是src
。我们需要将resources
放入src
或配置构建路径以包含resources
中的文件。一旦我们这样做,我们将在文件夹图标中看到小包图标。这就是我们如何知道文件在构建路径上的方式
第一张图片:不能,它不会工作(这是你目前的困境)
第二张图片:
ImageIcon icon = new ImageIcon(
getClass().getResource("/resources/stackoverflow.png"));
第三张图片:
ImageIcon icon = new ImageIcon(
getClass().getResource("/stackoverflow.png"));
要配置构建路径以使用第三个选项,请按照Example 2 in this answer
中的说明进行操作答案 1 :(得分:2)
从截图中可以看出,图像存在于名为" images"的文件夹中。将它放在类路径中的一个文件夹中:src / images / success.jpg并调用:
ImageIcon a = new ImageIcon(getClass().getResource("/images/success.jpg"));