-2

我正在创建一个名为 lines of Actions 的游戏,在导出到可执行 jar 文件时遇到问题

http://s21.postimg.org/rk1jef9wn/Untitled.png

当我按下“两个玩家”按钮时,应该显示这个面板

http://s21.postimg.org/dvcclaz8n/Untitled.png

当我从 Eclipse 运行它时它会显示,但当我运行可执行 jar 文件时它不会显示

注意:图像位于图像源文件夹中,我正在使用此方法获取图像:

private ImageIcon image(String s) {
    return new ImageIcon(getClass().getClassLoader().getResource(s));
}

并在创建 Jlable 时:

new Jlabel(image("example.png"));

而项目是这样的:

http://s14.postimg.org/lkuqvzut9/Untitled.png

4

1 回答 1

2

从控制台运行 jar java -jar filename.jar。您很可能在某些资源(图像)上有 null。

您可以在控制台中看到错误和警告,单击 jar 不会让您这样做。

对您的评论如下:尝试以与加载主背景图像(用于标题/选项菜单)相同的方式为 JPanel 加载图像,我们知道它已经可以工作。您需要inputstream在可执行文件中加载资源.jar

getResourceAsStream是您要用于从可执行文件中加载资源的内容。对于良好的做法,请始终使用它,即使在您的 IDE(eclipse)中,导出也会容易得多。

对于您的问题编辑:getResource返回一个URL恰好null在这种情况下。尝试做image("example.png"));。您写.ong为文件扩展名,如果您的意思是.png更改它并且您的代码应该可以工作:)

如果您不想写.ong,请尝试在文件名中添加反斜杠,如下所示:image("/example.png");您可以在上面的链接中阅读原因。

于 2013-05-02T20:08:40.060 回答