问题描述
我刚刚用Java编写了一个迷你程序,该程序可以拍摄图像并将其打印在框架上。 我使用JPanel加载图像:
public class Board extends JPanel {
private Image mummy;
public Board() {
initBoard();
}
private void initBoard() {
loadImage();
int w = mummy.getWidth(this);
int h = mummy.getHeight(this);
setPreferredSize(new Dimension(w,h));
}
private void loadImage() {
ImageIcon ii = new ImageIcon("mummy.png");
mummy = ii.getimage();
}
@Override
public void paintComponent(Graphics g) {
g.drawImage(mummy,null);
}
}
和JFrame进行打印。 然后,我通过Eclipse的export部分(可运行的JAR文件)创建了.jar文件。
问题是,现在运行.jar文件时无法加载图像。我尝试将图片放在.jar压缩文件中的任何地方,但是代码无法加载。
每个人都知道如何使用此方法加载图像,还是应该使用包装器而不是eclipse来创建.jar文件?
解决方法
我知道了:
ImageIcon(“”)作为默认的起始目录放置了所有代码,但是在eclipse项目和eclipse生成的Runnable jar文件之间有所不同。 -当是项目时:这是项目的目录,因此src和bin目录在哪里。 -如果是.jar:src不存在,则起始目录现在是.jar文件所在的目录。
例如: 为简单起见,让我们将创建的可运行文件放在〜目录中。
-使用new ImageIcon("src/images/mummy.png")
,您必须将带有相关文件的目录“ images”放入项目的src目录(源文件和包所在的目录)中,形成如下结构:>
... eclipse-workspace / Project / src / cli / *。java-源代码所在的地方。
... eclipse-workspace / Project / src / images / mummy.png-文件所在的位置。
在使用eclipse创建可运行的.jar之后,您必须在.jar所在的目录中放置一个新的“ src”目录,其中带有“ images”,形成如下结构:
〜/ project.jar(.jar文件)
〜/ src / images / mummy.png(我在代码中使用new ImageIcon("src/images/mummy.png")
加载的图像
仍然感谢您的评论。