将图像添加到JLabel时如何使用int和string

时间:2013-04-14 12:49:11

标签: java string swing int jlabel

我在定义像这样的URI时尝试添加一个int和string:

Line 38    Icon iconpic = new ImageIcon(getClass().getResource("img/CM"+a+".png"));   
Line 39    JLabel pic = new JLabel(iconpic);

其中" a"是一个int。

但是我得到了这个:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(ImageIcon.java:205)
    at thebutton.CM.<init>(CM.java:38)

我也试过这个:

    String c = Integer.toString(a);
    String d = "img/CM";
    String e = ".png";
    String g = d+a+e; 
    System.out.println(g);
    System.out.println(getClass().getResource(g));
    Icon iconpic = new ImageIcon(getClass().getResource(g));   
    JLabel pic = new JLabel(iconpic);

得到了这个

img/CM0.png
null
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

前两行是.println的输出 这是NetBeans中项目的图片:

enter image description here

有没有办法解决这个问题?

3 个答案:

答案 0 :(得分:0)

这意味着getClass().getResource("img/CM"+a+".png")可能会返回null。 尝试调试getClass().getResource("img/CM"+a+".png"),例如放置System.out.println(getClass().getResource("img/CM"+a+".png"))并查看值。

请检查路径是否正确。

以下是Javadocs的链接。

img文件夹下创建一个source文件夹,并将图像命名为"CM"+a+".png"评估范围内的文件。

答案 1 :(得分:0)

Projects标签中右键单击您的项目名称,然后选择new - &gt; Folder。使用"images"

作为文件夹名称

enter image description here

现在转到Files标签并将图片移至此文件夹

enter image description here


现在使用

加载图片
new ImageIcon("images/yourImageName.png")

答案 2 :(得分:0)

不要让Java查找不存在的图像; CM0.png不存在!

对atamanroman和pshemo的信用