我在哪里把图像放在java(netbeans)中的图标,我如何将它们链接到代码?

时间:2014-10-07 12:38:13

标签: java swing jframe embedded-resource imageicon

我试图制作一个带有图标按钮的Jframe类

 public ImageIcon Flag = new ImageIcon(getClass().getResource("resources/Flag.png"));

给我一​​个空指针异常

" C:\用户\力迪\文件\的NetBeansProjects \扫雷\资源\ Flag.png"

完整目录是否可以到达我想要的图像 我创建了文件夹资源来存放我需要的图像 我应该在哪里放置图像?我应该写什么代码?

提前致谢

5 个答案:

答案 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 构建基础架构,您将拥有

  • src / main / java - java packages
  • src / main / resources - 像图片这样的资源
  • src / main / resources / images / Flag.png - 某些资源(无约定)

在你创建的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>");