栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

我直接从“ Java for Dummies的所有功能”中直接提取了这段代码……为什么不起作用?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

我直接从“ Java for Dummies的所有功能”中直接提取了这段代码……为什么不起作用?

该图像与我的项目包文件夹位于同一文件夹中

而已。

按照编写的程序,程序将在 当前工作目录 (而不是程序包层次结构)中查找映像。

根据需要

String
,从构造函数的Javadoc中采用,它从指定的文件名中读取图像。但是,当您指定相对路径时,这意味着相对于应用程序运行所在的工作目录进行读取。

要变通解决此问题,您有两种选择:

  • 指定相对于IDE运行程序的工作目录的映像文件名。我相信Eclipse在项目根目录中运行应用程序,并且源包层次结构的根目录为

    src
    。在这种情况下,如果您指定,它将起作用
    src/TestImage.jpg
    。缺点是,如果曾经从其他目录运行程序,则必须将图像文件与之一起移动。这对于分发/打包很不方便,因为您不能只是删除JAR文件并使其运行。

  • 使用Java的资源加载器从包层次结构加载图像文件。为此,请先使用

    getClass().getResource("TestImage.jpg")

获取图像的URL(相对于包根)。看到

ImageIcon
有一个接受URL读取图像的构造函数。因此,您应该使用

    new ImageIcon(getClass().getResource("TestImage.jpg"))

相对于包层次结构而言,优点是可以从任何位置运行该程序,并且可以将图像与您的应用程序捆绑在一个JAR文件中。

另外:最佳实践是创建一个在其中放置代码和资源的包(而不只是将它们放在包的根目录中)。在这种情况下,请通过

"com/example/someapp/TestImage.jpg"



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/509427.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号