0

下次如何显示文件选择器选择的下一张图像 这是我的代码,它有一个文件选择器来选择文件并在 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);

}
4

1 回答 1

2

不要重新创建 jLabel1。将其作为类的字段存储在某处,然后调用 setIcon() 从文件选择器传递图像

于 2013-11-08T12:20:59.447 回答