Vediamo, allora, di sistemare la classe ImagePanel:
codice:
public class ImagePanel extends JInternalFrame {
   public JInternalFrame finestra;
   public JScrollPane srcimgpanel;
   public DisplayJAI srcimg;
   public RenderedImage imgsrc;

   public ImagePanel(String fileName) {
      super(fileName, true, true, true, true);
      imgsrc = JAI.create("fileload", fileName);
      srcimgpanel = new JScrollPane();
      srcimg = new DisplayJAI(imgsrc);
      srcimgpanel.getViewport().add(srcimg);
      setPreferredSize(new Dimension(640, 480));
      setSize(640, 480);
      getContentPane().add(srcimgpanel);
      setVisible(true);
   }

   public ImagePanel(String fileName, DisplayJAI immagine) {
      super(fileName, true, true, true, true);
      srcimgpanel = new JScrollPane();
      srcimgpanel.getViewport().add(immagine);
      setSize(640, 480);
      getContentPane().add(srcimgpanel);
      setVisible(true);
   }

   public JInternalFrame CreatePanel(String fileName) {
      return new ImagePanel(fileName);
   }

   public JInternalFrame CreatePanel(DisplayJAI immagine){
      return new ImagePanel("Immagine Modificata", immagine);
   }

   public RenderedImage getOriginalImage() {
      return imgsrc;
   }
}
Così dovrebbe andare...

Ora devi modificare la dichiarazione di finestra all'interno del programma principale: lo devi dichiarare di tipo ImagePanel e non JInternalFrame. Tutto dovrebbe andare.


Ciao.