Il codice l'hai preso da qua: http://www.javalobby.org/java/forums/t49462.html
L'ho copincollato pure io e ho fatto una semplicissima classe di test, in questo modo:

codice:
import java.awt.*;
import javax.swing.*;

public class Tester {
   public static void main(String[] args) {
      try {
         UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
      } catch (Exception e) { /* L&F */ }

      SwingUtilities.invokeLater( new Runnable() {
         @Override
         public void run() {
            JFileChooser jfc = new JFileChooser();
            ImagePreviewPanel panel = new ImagePreviewPanel();
            jfc.setAccessory( panel );
            jfc.addPropertyChangeListener( panel );
            int ret = jfc.showOpenDialog( null );
         }
      });
   }
}
E funziona perfettamente.
E' possibile che nel tuo programma vengano sollevate delle eccezioni. Prova ad avviare l'applicazione dal prompt dei comandi e vedi se c'è qualche eccezione che viene sollevata.


Ciao.