Problemas na exibição de imagens

1 resposta
F

Meu programa exibe mensagens pega a nota dada pelo jslider pelo botão “confirmar”, e então é exibida outra imagem para ser avaliada. O problema é que quando minimizo e restauro a janela de exibição a imagem exibida é substituida (pela proxima apontada pelo vetor). como posso minimizar a janela sem substituir a imagem exibida?, anexo o código.

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));
        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
    
}

1 Resposta

M

O tópico ficou duplicado. Vamos esperar algum moderador trancar esse aqui. Por favor pessoal, responda aqui: http://guj.com.br/posts/list/199350.java

Criado 26 de fevereiro de 2010
Ultima resposta 26 de fev. de 2010
Respostas 1
Participantes 2