首先在解决这个问题之前我们需要了解一下绝对路径和相对路径。
关于绝对路径和相对路径网上都有详细的解释,大家可以自行百度,我在这里就浅显的讲解一下。
绝对路径是指文件真正存在硬盘上的路径。例如,一张名称为“1.jpg“的图片资源存在于你的“D:\image\”下面,那么这张图片的绝对路径为“D:\image\1.jpg”。
相对路径是指相对于自己的目标文件的位置。例如,s1.java与1.jpg同在“D:\Demo\image\”里面,那么s1要想调用这张图片,就可以直接用
new ImageIcon(getClass().getResource("1.jpg");
如果两者没有在同一目录下,例如,s1.java位于“D:\Demo\text\s1.java”,1.jpg位于“D:\Demo\image\1.jpg”,那么s1想要调用这张图片,就可以直接用
new ImageIcon(getClass().getResource("/image/1.jpg")
在使用相对路径时,一定要明白3个特殊符号:
“./” 是指根目录 (指逻辑驱动器的最上一级目录,例如打开C盘就进入了C盘根目录)
“../” 是指上一层目录
“/” 是指当前根目录(指当前正在使用的目录)
明白这个之后,关于图片无法加载的问题就已经解决了大半,然后我们要做的再生成jar时将图片的目录包含进去,
大家可以看下这篇文章 到第五步的时候执行下面图示的步骤:
1.点击加号
2.点击“+”号后,选择 Directory Content
.
3. 选择图片所处目录
4.点击Apply 在点击OK!
这样这个背景图片就会显示出来了。
如果你有什么问题可以加Q 193796223 进行探讨。