2013-11-08 1 views
0

Как отобразить следующее изображение, выбранное выбором файла в следующий раз Это мой код, в котором был файл-файл, чтобы выбрать файл и отобразить изображение на jlabel. Изображение правильно масштабируется, но при попытке выбрать следующий или другой файл изображения через filechooser .. новое изображение не отображается .. предыдущее изображение кадры там ... не могут отображать обновленное изображение .. Я также установить путь к файлу изображения в текстовом поле и его установки correctly.but изображений не обновляется JLabel ...Как отобразить следующее изображение, выбранное файловым выбором в следующий раз

пожалуйста любой скажи мне, где
моего кода неправильно ..

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    JFileChooser jFileChooser1 = new JFileChooser(); 
    repaint(); 

    jFileChooser1.setAcceptAllFileFilterUsed(false); 

    int state = jFileChooser1.showOpenDialog(new JFrame()); 
    jTextField1.setText(""); 
    jLabel1 = new JLabel(); 

    if (state == JFileChooser.APPROVE_OPTION) { 
     file = jFileChooser1.getSelectedFile(); 
     s2 = file.toString(); 
     jTextField1.setText(s2); 

     jLabel1.setName(s2); 
     jLabel1.setLocation(40, 40); 
     jLabel1.setSize(300, 300); 
     jLabel1.setVisible(true); 
     try { 
      bi = ImageIO.read(file); 
      // JOptionPane.showMessageDialog(new JFrame(),file.getName()); 
      icon = new ImageIcon(bi); 

      Image img = icon.getImage(); 
      icon = new ImageIcon(file.getPath()); 
      // icon = new ImageIcon(paths[currentIndex].getPath()); 
      scaleImage = icon.getImage().getScaledInstance(80, 80, 
        Image.SCALE_DEFAULT); 

      resizedImage = resize(bi, 200, 200); 
      icon = new ImageIcon(resizedImage); 

      jLabel1.setIcon(icon); 
      jLabel2 = new JLabel(); 

      repaint(); 
      pack(); 

      paths = file.getParentFile().listFiles(); 
      currentIndex = indexOf(paths, file); 
     } catch (Exception e) { 
      System.out.println(e); 
     } 
    } else if (state == JFileChooser.CANCEL_OPTION) { 
     JOptionPane.showMessageDialog(new JFrame(), "Canceled"); 
    } 
    add(jLabel1); 

} 

ответ

2

Не воссоздавайте jLabel1. Храните его где-то в качестве поля класса и просто вызывайте setIcon(), передавая изображение из файла chooser