0

我试图在定义这样的 URI 时添加一个 int 和字符串:

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

其中“a”是一个整数。

但是我明白了:

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

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

在此处输入图像描述

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

4

3 回答 3

0

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

请检查路径是否正确。

这是Javadocs的链接。

img在您的文件夹下创建一个文件source夹,并将命名它的图像放在其中的任何"CM"+a+".png"计算结果中。

于 2013-04-14T12:51:54.680 回答
0

Projects选项卡中右键单击您的项目名称,然后选择new-> Folder。作为文件夹名称使用"images"

在此处输入图像描述

现在转到Files选项卡并将图像移动到此文件夹

在此处输入图像描述


现在加载您的图像

new ImageIcon("images/yourImageName.png")
于 2013-04-14T14:11:11.623 回答
0

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

归功于 atamanroman 和 pshemo

于 2013-07-18T07:50:33.473 回答