как в следующий раз отобразить следующее изображение, выбранное средством выбора файлов

Как в следующий раз отобразить следующее изображение, выбранное средством выбора файлов Это мой код, в котором средство выбора файлов выбирает файл и отображает изображение на jlabel. Изображение правильно масштабируется до нужного размера, но когда я пытаюсь выбрать следующий или другой файл изображения с помощью выбора файлов ... новое изображение не отображается ... предыдущее изображение неподвижно там ... не может отображать обновленное изображение ... У меня также есть установите путь к изображению в текстовом поле, и оно будет установлено правильно. но изображение не обновляется на 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);

}

person Rohit    schedule 08.11.2013    source источник


Ответы (1)


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

person StanislavL    schedule 08.11.2013