我有以下代码:
labelShowImagenApp.setIcon(new ImageIcon(rutaAbs.toURI().toURL()));
其中rutaAbs
是图像文件的路径。
问题是当该路径包含空格(例如" im a png.png")它不起作用时,标签仍为空。
希望有人可以帮助我,谢谢。
编辑:我注意到如果包含图片的文件夹有空格,则它也无效。
答案 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);
}
非常感谢大家的回答。