Problemas na exibição de imagens

Olá, galera

Meu programa exibe imagens pega os resultados do jslider e guarda em um banco de dados. O problema é que quando a janela de exibição é minimiza e depois restaurada, a figura exibida pelo jpannel é modificada (para a próxima apontada no vetor). Como evito que a figura seja substituida ao se minimizar a janela?, abaixo o código:

[code] package image_measure;

/*

  • Aparencia.java
  • Created on 25 de Junho de 2007, 11:34
    */

import javax.swing.JFrame;
import javax.swing.JButton;

public class Experimento extends JFrame {

Banco banco = new Banco();
Dados dados;
public int value;
public String classeAvaliada;

/** Creates new form Aparencia */
public Experimento(Dados dados) {
    
    this.dados = dados; 
    
         
    initComponents();
    
            
    
}


// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    confirmaNota = new javax.swing.JButton();
    painelImagem01 = new Imagem(dados);
    jLabel1 = new javax.swing.JLabel();
    painelBarraProgresso = new BarraProgresso(dados);
    jLabel2 = new javax.swing.JLabel();
    Slider = new javax.swing.JSlider();
    Nota = new javax.swing.JTextField();
    jLabel4 = new javax.swing.JLabel();
    jLabel5 = new javax.swing.JLabel();
    jLabel7 = new javax.swing.JLabel();
    jLabel3 = new javax.swing.JLabel();
    jLabel6 = new javax.swing.JLabel();

    setTitle("Avaliação de Legibilidade");
    setAlwaysOnTop(true);
    setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
    setLocationByPlatform(true);
    setName("Frame 1"); // NOI18N
    setResizable(false);

    confirmaNota.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
    confirmaNota.setText("Confirmar");
    confirmaNota.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            ConfirmarNota(evt);
        }
    });

    painelImagem01.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
    painelImagem01.setDoubleBuffered(false);
    painelImagem01.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N
    painelImagem01.setMinimumSize(new java.awt.Dimension(0, 0));
    painelImagem01.setPreferredSize(new java.awt.Dimension(512, 512));

    javax.swing.GroupLayout painelImagem01Layout = new javax.swing.GroupLayout(painelImagem01);
    painelImagem01.setLayout(painelImagem01Layout);
    painelImagem01Layout.setHorizontalGroup(
        painelImagem01Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 648, Short.MAX_VALUE)
    );
    painelImagem01Layout.setVerticalGroup(
        painelImagem01Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 456, Short.MAX_VALUE)
    );

    jLabel1.setFont(new java.awt.Font("Arial", 0, 14));
    jLabel1.setText("Que nota você dá a legibilidade da imagem?");

    javax.swing.GroupLayout painelBarraProgressoLayout = new javax.swing.GroupLayout(painelBarraProgresso);
    painelBarraProgresso.setLayout(painelBarraProgressoLayout);
    painelBarraProgressoLayout.setHorizontalGroup(
        painelBarraProgressoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 366, Short.MAX_VALUE)
    );
    painelBarraProgressoLayout.setVerticalGroup(
        painelBarraProgressoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 15, Short.MAX_VALUE)
    );

    jLabel2.setFont(new java.awt.Font("Arial", 0, 14));
    jLabel2.setText("Imagem ");

    Slider.setFont(new java.awt.Font("Arial", 0, 12));
    Slider.setMajorTickSpacing(5);
    Slider.setMinorTickSpacing(1);
    Slider.setOrientation(javax.swing.JSlider.VERTICAL);
    Slider.setPaintLabels(true);
    Slider.setPaintTicks(true);
    Slider.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
    Slider.addChangeListener(new javax.swing.event.ChangeListener() {
        public void stateChanged(javax.swing.event.ChangeEvent evt) {
            SliderStateChanged(evt);
        }
    });
    Slider.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyReleased(java.awt.event.KeyEvent evt) {
            SliderKeyReleased(evt);
        }
    });

    Nota.setText("Nota");

    jLabel4.setText("Bom          [89 ,70] ");

    jLabel5.setText("Regular    [69 ,50]");

    jLabel7.setText("Ruim        [19 ,  0]");

    jLabel3.setText("Excelente [100,90]");

    jLabel6.setText("Baixa        [49,20] ");

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(painelBarraProgresso, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGroup(layout.createSequentialGroup()
                    .addGap(26, 26, 26)
                    .addComponent(painelImagem01, javax.swing.GroupLayout.PREFERRED_SIZE, 652, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(31, 31, 31)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(Slider, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(layout.createSequentialGroup()
                                    .addGap(84, 84, 84)
                                    .addComponent(Nota, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addGroup(layout.createSequentialGroup()
                                    .addGap(67, 67, 67)
                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(jLabel3)
                                        .addComponent(confirmaNota)
                                        .addComponent(jLabel4)
                                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addComponent(jLabel5)
                                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addComponent(jLabel7)
                                                .addComponent(jLabel6)))))))
                        .addComponent(jLabel1)))
                .addGroup(layout.createSequentialGroup()
                    .addGap(304, 304, 304)
                    .addComponent(jLabel2)))
            .addContainerGap(9, Short.MAX_VALUE))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addGap(63, 63, 63)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                            .addGap(65, 65, 65)
                            .addComponent(Nota, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(45, 45, 45)
                            .addComponent(confirmaNota, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(78, 78, 78)
                            .addComponent(jLabel3)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jLabel4)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jLabel5)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jLabel6)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(jLabel7))
                        .addGroup(layout.createSequentialGroup()
                            .addGap(36, 36, 36)
                            .addComponent(Slider, javax.swing.GroupLayout.PREFERRED_SIZE, 318, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addComponent(painelImagem01, javax.swing.GroupLayout.PREFERRED_SIZE, 460, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addGap(18, 18, 18)
            .addComponent(jLabel2)
            .addGap(197, 197, 197)
            .addComponent(painelBarraProgresso, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );

    java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    setBounds((screenSize.width-1007)/2, (screenSize.height-618)/2, 1007, 618);
}// </editor-fold>                        

private void SliderStateChanged(javax.swing.event.ChangeEvent evt) {
// TODO add your handling code here:
Nota.setText(String.valueOf(Slider.getValue()));
}

private void SliderKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
String typed = Nota.getText();
Slider.setValue(0);
if(!typed.matches("\d+") || typed.length() > 3) {
return;
}
int value = Integer.parseInt(typed);
Slider.setValue(value);
}

private void ConfirmarNota(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
value = Slider.getValue();
if (value>=80){
classeAvaliada =“Excelente”;
} else if (value<=79 && value>=60 ){
classeAvaliada = “Bom”;
}else if (value<=59 && value>=40 ){
classeAvaliada = “Regular”;
}else if (value<=39 && value>=20 ){
classeAvaliada = “Baixa”;
}else {
classeAvaliada = “Ruim”;
}

dados.setnota_imagem(String.valueOf(Slider.getValue()));
    
    dados.setIdUsuario(dados.getNomeUsuario());
    
    
    banco.salvarExperimento(dados.getIdUsuario(), dados.getImagem(), dados.getnota_imagem(), classeAvaliada ,dados.getData());
   
   dados.incrementProgresso(); 
    
   //Verifica se o experimento terminou 
   if(dados.getProgresso()<dados.ETAPAS){
        
       painelImagem01 = new Imagem(dados);
       
            
       repaint();
                
    }
    else{
         
       Agradecimento agradecimento = new Agradecimento();
       agradecimento.setVisible(true);
       
        try{
            setVisible(false);
            finalize();
            System.gc();
        }
        catch(Throwable tA){
        
            tA.printStackTrace();
        }
    }

}

/*public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Experimento(this.dados).setVisible(true);
        }
    });
}*/

// Variables declaration - do not modify                     
private javax.swing.JTextField Nota;
private javax.swing.JSlider Slider;
private javax.swing.JButton confirmaNota;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JPanel painelBarraProgresso;
private javax.swing.JPanel painelImagem01;
// End of variables declaration                   

}[/code]