【问题标题】:Image not showing in JFrame - Java Application图像未显示在 JFrame - Java 应用程序中
【发布时间】:2017-09-25 17:00:36
【问题描述】:

为了添加图片,我使用了这段代码。

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

图片位置:Application/src/bin/image.png.

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

【问题讨论】:

标签: java image swing jframe embedded-resource


【解决方案1】:

getClass().getResource 作为 /src/ 包内的文件返回,并将在构建后捆绑到 bin 中。

更改为仅 /image.png 以从项目结构中加载它

否则,如果您想复制资源(或通过源添加新项目),您必须使用完全限定的资源路径名并将其作为文件加载。

另外,你需要通过 Eclipse 或 FatJar 导出资源,不知道通过 Ant。

我在使用 getClass().getResource 获取资源时也遇到了一些问题,但我确实使用了 getClass().getClassLoader().getResource。

【讨论】:

  • getClass().getResource 返回当前类路径中的资源 - 它与 src 目录无关 - 一些 IDE 打包存储在 src 目录中的资源,但剥离 @987654324 @ 路径元素。 “更改为仅 /image.png 以从项目结构中加载它” - 根据输入,我希望它是 /bin/image.png,但没有关于如何生成 Jar 的详细信息,不可能确定
  • /src/ 生成编译后的类到/bin/ 根是'/'
  • 在什么JVM/构建系统下? bin 只是一个目录/包和其他目录/包一样,取决于系统是如何实现的,它很容易成为/bin/... 或其他目录 - 假设大多数 IDE 的默认操作 /bin/... 是一个更安全的选择 -除非 OP 准备提供有关他们如何打包 Jar 的更多详细信息 - 一切都只是假设和推测
猜你喜欢
  • 2011-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 2014-02-08
  • 2018-02-02
  • 1970-01-01
  • 2011-02-25
相关资源
最近更新 更多