我试图制作一个带有图标按钮的Jframe类
public ImageIcon Flag = new ImageIcon(getClass().getResource("resources/Flag.png"));
给我一个空指针异常
" C:\用户\力迪\文件\的NetBeansProjects \扫雷\资源\ Flag.png"
完整目录是否可以到达我想要的图像 我创建了文件夹资源来存放我需要的图像 我应该在哪里放置图像?我应该写什么代码?
提前致谢
答案 0 :(得分:4)
尝试使用相同方法的包路径。 例如,如果我的图像在org.nisheeth.resources包中,则应按如下方式编写。
public ImageIcon flag = new ImageIcon(Test.class.getResource("/org/nisheeth/resource/Flag.png"));
答案 1 :(得分:3)
当您使用getClass().getResource()
加载图片时,JVM实际上使用您的CLASSPATH加载资源(您应该仔细查看Class#getResource(...)
)。
因此,要使您的资源可用,您必须将其推送到项目输出文件夹(必须是target
,不是吗?)。
答案 2 :(得分:3)
正如您所要求的那样:使用 Maven 构建基础架构,您将拥有
在你创建的jar / .classes中
/images/Flag.png
public ImageIcon Flag = new ImageIcon(getClass().getResource("/images/Flag.png"));
这里,Class.getResource()
使用类的包的相对路径;因此,使用上面的绝对路径(“/ ...”)是最简单的。
答案 3 :(得分:1)
您只需将文件夹资源放入包含已编译类的文件夹,并将ImageIcon设为这样。
public ImageIcon Flag = new ImageIcon("resources/Flag.png");
答案 4 :(得分:-1)
创建一个包说ImgPack并将所有图像粘贴到此包并使用
访问所有图像 ImageIcon ii = new ImageIcon(System.getProperty("user.dir")+"\\src\\ImgPack\\<Imagename.extention>");