Ciao,
ho un frame, al suo interno c'è un pannello e un bottone. Praticamente quando viene cliccato il bottone, viene chiamato il metodo cambia(). Il problema è dato dalla paintComponent, infatti se la commento non riscontro errori. Sapete dirmi come posso risolvere questo problema?

La classe del pannello in questione è questa:
codice:
public class InputPanel extends JPanel {
	private static boolean status=true;
    public Image img;
    public String file="C:\\input.jpg";
    
    public InputPanel(){
        super();
        setBorder(BorderFactory.createLineBorder(Color.black));
    }
    
    public void cambia() throws InterruptedException{
    	Thread t = new Thread(new Esecutore());
        t.start();
        System.out.println("Thread acquisizione avviato");
        
        while(status){
        	img = Toolkit.getDefaultToolkit().createImage(file);
        	Thread.currentThread().sleep(1000);
        	repaint();
        }
    }
    
    public Dimension getPreferredSize() {
        return new Dimension(400,250);
    }
    
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);       
        //g.drawString("Immagine Caricata!",10,20);
        g.drawImage(img,20,20,img.getWidth(this),img.getHeight(this),this);
    }
    
    private static class Esecutore implements Runnable {
        public void run() {
        	int a;
            try {
                Runtime rt = Runtime.getRuntime();
                                
                Process p = rt.exec("C:\\\BioLib-Test.exe");
                status=true;
                System.out.println("Acquisizione avviata");

                a=p.waitFor();
                status=false;
                System.out.println("Acquisizione terminata. Ritorna:"+a);
            } catch (Exception e) {
                System.err.println(e);
            }
        }
    }
}