带有%20的ImagePath无法正常工作

时间:2014-11-14 12:14:33

标签: java swing imageicon

我有以下代码:

labelShowImagenApp.setIcon(new ImageIcon(rutaAbs.toURI().toURL()));

其中rutaAbs是图像文件的路径。 问题是当该路径包含空格(例如" im a png.png")它不起作用时,标签仍为空。

希望有人可以帮助我,谢谢。

编辑:我注意到如果包含图片的文件夹有空格,则它也无效。

3 个答案:

答案 0 :(得分:2)

对于文件使用:

labelShowImagenApp.setIcon(new ImageIcon(rutaAbs.getPath()));

(对于其他读者。) 对于应用程序中的资源(可能在jar中),使用

labelShowImagenApp.setIcon(new ImageIcon(getClass().getResource("/...")));

更正后的答案:

这就是我一般的做法:

BufferedImage img = ImageIO.read(rutaAbs);
ImageIcon icon = new ImageIcon(img);
icon.getImage().flush();  // @mKorbel
labelShowImagenApp.setIcon(icon);

答案 1 :(得分:1)

试试这个:

labelShowImagenApp.setIcon(new ImageIcon(URLDecoder.decode(rutaAbs.toURI().toURL(), "UTF-8")));

<强>编辑。

答案 2 :(得分:0)

我已经解决了这个问题:

            if (rutaAbs.toString().contains("%20")){
                String replacedPath = (rutaAbs.toString().replace("%20", " "));
                rutaAbs = new File(replacedPath);
            }

非常感谢大家的回答。