使用eclipse生成.jar文件后,如何加载图像



我刚刚用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, 0, 0, null);
}
}

和JFrame打印。然后,我通过Eclipse的导出部分创建了.jar文件(RunnableJAR文件(。

问题是,现在我在运行.jar文件时无法加载图像。我试着把图像放在.jar zip上的任何地方,但只是代码没有加载它。

每个人都知道如何使用这种方法加载图像,或者我应该使用包装器来创建.jar文件而不是eclipse?

伙计们,我想明白了:

ImageIcon("(有一个默认的起始目录,所有代码都放在那里,但在eclipse项目和eclipse生成的Runnable jar文件之间有所不同。-当它是一个项目时:它是项目的目录,所以src和bin目录在哪里。-当它是.jar时:src不存在,现在的起始目录是.jar文件所在的目录。

例如:为了简单起见,让我们将创建的可运行文件放在~目录中。

-使用new ImageIcon("src/images/mummy.png"),您必须将目录";图像";与项目的src目录中的相关文件(源文件和包所在的位置(一起,生成如下结构:

eclipse workspace/Project/src/cli/*.java-其中源代码为.

eclipse工作区/Project/src/images/mummy.png-文件所在的位置.

在您使用eclipse创建了runnable.jar之后,您将不得不放入一个新的";src";目录中的";图像";在.jar所在的同一目录中,生成如下结构:

~/project.jar(.jar文件(

~/src/images/mummy.png(我用new ImageIcon("src/images/mummy.png")在代码中加载的图像

无论如何,谢谢你的评论。

最新更新