You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Swing中ImageIcon无法显示图片问题求助

Java Swing中ImageIcon无法显示图片问题求助

嘿,我最近在做一个Java Swing小应用,遇到个头疼的问题——图片死活显示不出来😅。先跟大家说说我的情况:

我的项目结构是这样的:

/src
    /img/TicTacToe.png
    /myFrame
        /MyFrame.java
        /Frame1.java

我的MyFrame.java代码开头是:

package myFrame;

(后面是尝试加载图片的逻辑,但目前没贴全,不过核心问题应该出在图片加载的路径上)

我自己琢磨了下,大概率是路径配置的问题,毕竟Swing加载资源的时候对路径要求挺严格的,给大家分享几个我试过的可行方案,也希望能得到更多建议:

  • 用类加载器加载资源(推荐):这种方式不管是运行还是打包成jar都能正常工作,因为它是从类路径里找资源的。你可以这么写:
ImageIcon icon = new ImageIcon(MyFrame.class.getResource("/img/TicTacToe.png"));

注意路径开头的/,它代表从src的根目录开始查找,正好对应我们项目里的/img文件夹位置。

  • 检查文件名和路径拼写:一定要仔细核对图片文件名的大小写(Windows系统可能不敏感,但Linux/Mac或者打包成jar后就会区分大小写),还有路径有没有写错,比如是不是把img写成images了?

  • 确认资源目录配置:有些IDE不会自动把img文件夹复制到编译后的输出目录里,你可以去项目的target/classes(或者bin)目录看看,有没有img文件夹和里面的图片。如果没有的话,在IDE里把img文件夹标记为资源目录就行——比如在IDEA里右键img文件夹,选“Mark Directory as” -> “Resources Root”。

对了,如果你之前是用new File("img/TicTacToe.png")这种方式加载的,那肯定不行,因为这里的相对路径是相对于程序运行的当前目录,不是src目录,很容易找不到文件。

备注:内容来源于stack exchange,提问作者user30254562

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:18:10