Cosa ne pensi se uso paintComponent(graphics g)
codice:
package jCallRemember.libreria;


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;


/**
 *
 * @author Linux
 */
public class RiquadroFoto  extends JPanel{
    private JLabel labelFoto;
    private File fileFoto;
    private Image foto;
    public RiquadroFoto() {
        this.labelFoto=new JLabel();
        this.setLayout(new BorderLayout());
        this.add(labelFoto,BorderLayout.CENTER);
    }
    
    public void initComponents(){
        
        this.labelFoto.setPreferredSize(this.getPreferredSize());
        this.setBackground(Color.white);
        
    }
    
    


    
    public void impostaMouseClick(MouseListener M){
        this.labelFoto.addMouseListener(M);
    }


    public void inserisciFoto(File fileSelezionato) throws IOException {
        this.fileFoto=fileSelezionato;
        this.foto=Toolkit.getDefaultToolkit().createImage(this.fileFoto.getCanonicalPath());
        Dimension dim=this.getPreferredSize();
        this.labelFoto.setIcon(new ImageIcon(foto.getScaledInstance(dim.width, dim.height, Image.SCALE_SMOOTH)));
    }
 
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponents(g);
        Dimension dim=new Dimension(this.getPreferredSize());
        this.labelFoto.setPreferredSize(dim);
        if(foto!=null)
            this.labelFoto.setIcon(
                    new ImageIcon(foto.getScaledInstance(dim.width, dim.height,
                            Image.SCALE_SMOOTH))
            );
    }
    
}
codice:
     package jCallRemember.libreria;


import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.JFrame;


/**
 *
 * @author Linux
 */
public class FormInsertOperatore extends JFrame{
    private final RiquadroFoto riquadro;
    
    public FormInsertOperatore(){
        riquadro=new RiquadroFoto();
    }
    
    public void setup(){
        this.setPreferredSize(new Dimension(150,150));
        this.riquadro.setPreferredSize(new Dimension(150,150));
        this.add(riquadro,BorderLayout.CENTER);
        
        this.pack();
        this.setVisible(true);
        this.riquadro.impostaMouseClick(new ClickRiquadroFoto(this.riquadro));
        this.addComponentListener(new ComponentAdapter(){
            @Override
            public void componentResized(ComponentEvent e){
                riquadro.setPreferredSize(getSize());
                
            }
        });
    }
   








}

Unico problema iljpanel non viene piu colorato di bianco adesso . perchè?