为什么这段代码不起作用:jLabel setIcon?

时间:2013-10-06 12:16:46

标签: java swing jlabel imageicon

我正在尝试设置jLabel对象的图标但它不起作用。如果.getClass()。getResource(path)与null不同,我使用返回ImageIcon对象的方法,如果资源为null,则显示消息“找不到资源:文件路径”,但文件在那里!!!如果我没有选择文件,则应用默认的ImageIcon,这样可以正常工作。我不知道为什么这不起作用。

 private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try {
        JFrame upFile = new JFrame();
        File fichero = new File("");
        File x = new File("");
        CopyFile copy= new CopyFile();
        JFileChooser upfile = new JFileChooser(fichero.getCanonicalPath());
        int op = upfile.showOpenDialog(upFile);
                if (op == JFileChooser.APPROVE_OPTION) {
                    fichero = upfile.getSelectedFile();
                    File destino = new File(x.getCanonicalPath()+"\\src\\img\\libros_fotos\\"+fichero.getName());
                    copy.copyFile(fichero, destino);
                    SetLibro("/img/libros_fotos/"+destino.getName());
                    jLabel47.setIcon(createImageIcon(GetLibro()));
                    // commented out as suggested
                    //this.revalidate();
                    //this.repaint();
                }
                else {SetLibro("/img/blank.jpg");
                      jLabel47.setIcon(createImageIcon(GetLibro()));
                    // commented out as suggested
                    //this.revalidate();
                    //this.repaint();                            }
    } catch (IOException ex) {
        System.err.println(ex.getMessage());
    }
} 

1 个答案:

答案 0 :(得分:1)

尝试添加

this.revalidate();  
this.repaint();  
添加Icon