1

我正在尝试解决这个问题。尝试不同的解决方案,但没有任何效果。我正在使用 NetBeans IDE。我创建了一个具有这种结构和文件的项目:

E:\java\project\ecadpb\src\ecadpb

图片文件在

E:\java\project\ecadpb\src\

我在 Netbeans 中为我的项目指定了工作文件夹E:\java\project\ecadpb

我已经创建了这样的图像图标

new ImageIcon("device21.png");

在我的源文件中,它在 Netbeans 中运行项目时运行良好,但是当我单独构建和运行我的 JAR 文件时,图像没有显示。但是图像文件在 JAR 中。

我也尝试过之前提出的相同问题的答案。

URL imageUrl=getClass().getResource("device21.png");
new ImageIcon(imageUrl);

但它在我的情况下不起作用。我是第一次构建 JAR 文件。谁能帮我这个!!

4

4 回答 4

3

一种简单的方法是将图像添加到您的类路径或类路径中的目录中img,如下所示:

E:\java\project\ecadpb\src\main\java\img\device21.png 

然后像这样从这个位置加载你的图像:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL resource = classLoader.getResource("img/device21.png");
ImageIcon icon = new ImageIcon(resource);
于 2012-04-20T21:51:36.513 回答
1

创建一个名为 Images 的源文件夹(即,如果您使用的是 eclipse,请右键单击您的项目 -> 新建 ->sourceFolder)。随便你怎么称呼它,我叫我的图像。在里面放一些图片。

现在我有了 JLabels,我给了他们 ImageIcons。看下面的代码。

    ImageIcon BPawn;
    ImageIcon WPawn;
    JLabel Label = new JLabel[8][8] //2D array of labels that gives each spot a position.
    public void setPieces(){
        //set up pawns in their respective positions.
        BPawn = new ImageIcon("Images/BPawn.png", "BPawn");
        WPawn = new ImageIcon("Images/WPawn.png", "WPawn");
    for(int i=0;i<Label[0].length;i++){
        Label[1][i].setIcon(BPawn);
        Label[6][i].setIcon(WPawn);
    }//end for

    }//end setPieces.

setPieces() 方法中还有更多内容,但这一瞥是当您创建可执行 jar 并希望显示图像时如何引用源文件夹中的图像。

于 2015-05-01T03:37:07.533 回答
0

我认为答案可能是这些建议之一

于 2012-04-20T21:24:32.117 回答
0

我使用了类似的方法,

a) 指定图像文件名的包路径。

b) 确保您的构建脚本没有忽略映像文件,并且它存在于您的 jar 文件中。

于 2012-04-20T21:34:43.463 回答