【问题标题】:Java: image not loading in EclipseJava:图像未在 Eclipse 中加载
【发布时间】:2013-11-15 21:33:18
【问题描述】:

我在 Stack Overflow 上进行了很多搜索,并按照here 给出的答案进行了操作。 但我仍然收到IllegalArgumentException : input==null! 的以下行:

BufferedImage image=ImageIO.read(this.getClass().getResource("/images/bg.jpg"));    
ImageIcon logo=new ImageIcon(ImageIO.read(this.getClass().getResource("/images/tucan.png")));

我尝试了一切,但仍然没有成功。我的目录结构是这样的:
新闻-->res-->图片-->bg.jpg,tucan.png

【问题讨论】:

    标签: java eclipse


    【解决方案1】:

    您必须将您的res 文件夹添加到source folders 列表中。

    右键 -> 构建路径 -> 用作源文件夹

    如果您不这样做,则 Eclipse 不会将该文件夹复制到输出文件夹中,并且您无法以您尝试的方式访问它们。

    【讨论】:

    • 谢谢。它起作用了。另一个问题是(使用ImageIO.read)当我说有 15 个这样的图像时加载图像的有效方式。
    • 这是唯一的内置方式,因此您别无选择。但是,到目前为止,我在ImageIO 图像读取方面没有任何问题。
    • @Neet - 它不是唯一的内置方式(例如 Toolkit.getImage),但可能是最简单(也是最新)的使用方式 [:-)
    • @CarlosHeuberger 是的,但 Toolkit 在后台使用与 ImageIO 相同的读取器/导入器。您可以通过查看来源来验证这一点。所以,应该没什么区别。这只是做同样事情的另一种方式^^
    • @Neet 完全是另一种方式——所以不止一种方式!你确定他们使用相同的阅读器/进口商吗? Toolkit 是 AWT,似乎没有使用 imageio 包中的任何类;另一边的 ImageIO 似乎没有使用任何 awt 类,尽管有 BufferedImage 和 RenderedImage。并且至少有两个区别:Toolkit 缓存图像并返回 ToolkitImage 而 ImageIO 返回 BufferedImage!
    猜你喜欢
    • 1970-01-01
    • 2013-09-23
    • 2015-08-12
    • 2018-12-11
    • 1970-01-01
    • 2013-09-22
    • 2017-06-16
    • 2013-01-06
    • 2019-06-29
    相关资源
    最近更新 更多