我制作了一个应用程序,它使用图像作为图像的背景,当我在eclipse中运行它时它完美地运行,但是当我将它打包成.Jar文件时,图像没有显示。 我浏览Stackoverflow for Answers我发现了类似的帖子,我尝试了解决方案,但没有任何效果。
这是我最终做的事情。
private void init(){
setPreferredSize( new Dimension( w, h ) );
setVisible(true);
URL url = getClass().getResource("Graph2.png");
System.out.println("Value = " + url);
img = Toolkit.getDefaultToolkit().createImage(url);
}
构造函数调用此函数来初始化GUI 然后我在paintcomponent中调用此函数来绘制图像
private void initializeGrid(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(img, 0, 0, this);
}
不确定我尝试将图像放在各处的问题是什么,从src外部的文件夹到bin内部到bin中的GUI包内部都没有用。
提前致谢
答案 0 :(得分:1)
设置它的典型方法是在Eclipse中创建这样的文件夹:
bin/
resources/
src/
在resources
中创建与src
和bin
完全相同的包结构。将您的图片文件复制到resources
中与尝试在src
中加载它的类相同的包中。
在项目>属性> Java构建路径>来源,将src
和resources
添加为源文件夹。现在,当您构建项目时,resources
的内容将被复制到bin
,它将在您的IDE和JAR中运行。
答案 1 :(得分:0)
请尝试在JAR中为您的图像指定绝对位置,例如
URL url = getClass().getResource("/com/test/mypackage/Graph2.png");
如果您的图片位于您的班级附近或
URL url = getClass().getResource("/Graph2.png");
如果您的图片位于JAR文件的根目录
另请注意文件名“Graph2.png”的情况不是“graph2.png”