繁体   English   中英

为什么我在这里得到一个找不到文件的异常?

[英]Why am I getting a file not found exception here?

这让我发疯,我同时使用了连接和格式,而生成的字符串与正确的路径匹配。 循环从一开始就抛出异常。

这是怎么回事?

ImageIcon thisWorks= new ImageIcon(testview.class.getResource("/led_images/"+1+"_off.png"));
    for(int i = 1; i <= 10; i++)
    {
        String on = String.format("/led_images/%d_on.png",i);
        String off = String.format("/led_images/%d_off.png",i);


    ledIcons.put( i+"_off", new ImageIcon(testview.class.getResource(off)));
    ledIcons.put( i+"_on", new ImageIcon(testview.class.getResource(on)));
    }

编辑:我是否错误地使用了 Map? 这是一个Map<String,ImageIcon>

Edit2:是的,我想我使用 map 不正确。

我有这样声明:

public Map< String, ImageIcon> ledIcons;

这是循环内的 null 值。 所以我猜它不像 c++ 那么呢?

Edit3:是的,不要介意这个问题,我没有正确初始化该字段,我很抱歉。

如果thisWorks有效,那么显然存在"/led_images/1_off.png" 如果您在循环中遇到图像异常,那么可能是其中之一

/led_images/2_off.png
/led_images/2_off.png
/led_images/3_off.png
...
/led_images/10_off.png

/led_images/1_on.png
/led_images/2_on.png
/led_images/3_on.png
...
/led_images/10_on.png

缺失。

编辑:我是否错误地使用了 Map? 这是 Map 之一。

不,这对我来说看起来不错。 (除非您稍后在检索时遇到问题。)

我猜前面的斜线是问题所在; 你可能想要一个相对路径。 请参阅文档:

http://download.oracle.com/javase/6/docs/api/java/lang/Class.html#getResource(java.lang.String )

初始化字段:

public Map< String, ImageIcon> ledIcons = new HashMap< String, ImageIcon>();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM