设置没有完整路径的 imageIcon
Setting imageIcon without full path
我试图在 Jlabel 上设置图标,但每次 运行 时我都会得到 "NullPointerException"。当我输入完整路径时它确实 运行 但我不想这样做,因为我想在环境中移动 java 程序。
jLabel1.setIcon(new ImageIcon(this.getClass().getResource("/data/images/image.jpg")));
我认为问题出在我尝试使用的路径上。
我的大致项目环境是:
projectfolder/src
projectfolder/data/images/image.jpg
我试过使用:
/image.jpg
/data/images/image.jpg
data/images/image.jpg
.\data\images\image.jpg
我做错了什么?
Class#getResource()
returns 相对于您 class 位置的资源。请改用 ClassLoader#getResource()
。如果使用默认 class 加载程序,它 returns 相对于程序 class 路径的资源。
this.getClass().getClassLoader().getResource("data/images/image.jpg")
您应该将数据文件夹放在 src
文件夹中。否则数据文件夹不包含在程序的 .jar
.
我试图在 Jlabel 上设置图标,但每次 运行 时我都会得到 "NullPointerException"。当我输入完整路径时它确实 运行 但我不想这样做,因为我想在环境中移动 java 程序。
jLabel1.setIcon(new ImageIcon(this.getClass().getResource("/data/images/image.jpg")));
我认为问题出在我尝试使用的路径上。
我的大致项目环境是:
projectfolder/src
projectfolder/data/images/image.jpg
我试过使用:
/image.jpg
/data/images/image.jpg
data/images/image.jpg
.\data\images\image.jpg
我做错了什么?
Class#getResource()
returns 相对于您 class 位置的资源。请改用 ClassLoader#getResource()
。如果使用默认 class 加载程序,它 returns 相对于程序 class 路径的资源。
this.getClass().getClassLoader().getResource("data/images/image.jpg")
您应该将数据文件夹放在 src
文件夹中。否则数据文件夹不包含在程序的 .jar
.