在JFrame中未显示图像 - Java应用程序

问题描述:

为了添加图像,我使用了此代码。在JFrame中未显示图像 - Java应用程序

JLabel label = new JLabel(new ImageIcon(getClass().getResource("/bin/image.png"))); 

图像的位置:Application/src/bin/image.png.

问题是,在我的电脑调试模式下,它示出了图像。但是,如果我将文件夹(Application/dist)复制到另一台计算机上,它不会显示图像,但在清理并构建项目之后。我怎样才能在其他电脑上显示图像?

+0

的可能的复制[嵌入资源(图片,声音位等)到Java项目,然后使用这些资源(https://*.com/questions/3721706/embedding-resources-images-sound-bits-etc -into-a-java-project-then-use-those) – MC10

+0

解压Jar文件,查看资源是否包含在内。如果没有,你将需要弄清楚如何将它们,这将是你如何生成摆在首位 – MadProgrammer

getClass()。getResource返回来自/ src /包内的文件,并且在构建后将捆绑在bin中。

更改只/image.png从项目结构

不然,如果你要复制的资源(或添加新项目槽中源),您必须使用完整的限定资源路径名,并加载它加载它作为一个文件来代替。

此外,您需要使用资源通过Eclipse或FatJar导出,不知道槽Ant。

我也没有通过让资源与的getClass()。的getResource有一些问题,而不是我用的getClass()。getClassLoader()。的getResource。

+0

'的getClass()Jar文件来确定getResource'返回当前的类路径中的资源 - 它没有任何关系使用'src'目录执行 - 一些IDE打包存储在'src'目录中的资源,但剥离'src'路径元素。 *“仅改变/image.png以从项目结构中加载它”* - 基于输入,我希望它是'/ bin/image.png',但没有关于如何生成Jar的细节,这是不可能的 – MadProgrammer

+0

/src /生成编译类到/ bin /中,它的根将是'/' –

+0

在什么JVM/build系统下? 'bin'就像其他任何目录/软件包一样,这取决于系统的实现方式,假设大多数IDE的默认操作是/ bin,就像'/ bin/...'或其他目录一样简单。/...'是一个更安全的赌注 - 除非OP准备提供关于他们如何打包Jar的更多细节 - 一切都只是假设和猜想 – MadProgrammer