我正在尝试将img作为背景设置为Jlabel(或JScrollPanel),并且我收到了一个我无法解决的异常。我的代码如下:
public void cargaImagen(String dir){
URL url;
try {
url = new URL(dir);
//Image image = ImageIO.read(dir);
ImageIcon icon = new ImageIcon(dir, "");
this.Jlabel_imagen.setIcon(icon);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
this.Jlabel_imagen.updateUI();
}
我得到的例外是:
线程“AWT-EventQueue-0”中的异常java.lang.NullPointerException 在vista.ParteTres.cargaImagen(ParteTres.java:225)
第225行是:this.Jlabel_imagen.setIcon(icon);
答案 0 :(得分:2)
你写过第225行(NullPointerException
的来源)是:
this.Jlabel_imagen.setIcon(icon);
JLabel.setIcon()
接受null
(在这种情况下,标签没有图标),只留下一个选项:this.Jlabel_imagen
为null
。
在调用this.Jlabel_imagen
方法之前正确初始化setIcon()
。
正如mKorbel指出不需要调用JLabel.updateUI()
,您可以删除它。