【问题标题】:NetBeans FileChooser. How do I use it to copy a file from one location to another defined in a string?NetBeans 文件选择器。如何使用它将文件从一个位置复制到字符串中定义的另一个位置?
【发布时间】:2014-02-10 02:57:42
【问题描述】:

我知道如何在 netbeans 中使用 FileChooser 执行简单的操作,但是当涉及到更复杂的操作时,我有点卡住了。到目前为止,我能够使用从 JFrame 上的用户文件系统获得的图片,如下所示: 但我不知道如何使用它将文件从一个位置复制到字符串中定义的另一个位置?

代码:

private void ImageAtattchActionPerformed(java.awt.event.ActionEvent evt) {
    int o = jFileChooser1.showOpenDialog(this);
    if (o == JFileChooser.APPROVE_OPTION) {
        File f = jFileChooser1.getSelectedFile();
        jLabel1.setIcon(new ImageIcon("" + f));
    }

【问题讨论】:

  • JFileChooser 就是这样做的,让用户选择一个文件。选择文件后的任何操作都与 JFileChooser 无关,而是与您的代码有关。您将需要阅读 Java 文件教程,任何文件教程,Google 可以帮助您找到,然后阅读 Java 文件处理的基础知识。

标签: java swing file file-io


【解决方案1】:

“但是我不知道如何使用它来将文件从一个位置复制到另一个在字符串中定义的位置?”

假设您尝试保存图像文件,只需使用 ImageIO.readImageIO.write

  1. 读取从文件中获取的图像

     image = ImageIO.read(file);
    
  2. 将其写入不同的文件

    ImageIO.write(image, "jpg",new File("C:\\path\\to\\destination\\" 
                                                           + file.getName()));
    

ImageIO api 上查看更多信息。另请参阅 Basic I/O 以保存除图像之外的其他格式。


你可以运行这个例子,只是改变文件路径。

import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.filechooser.FileNameExtensionFilter;

public class SaveImageFile {

    public SaveImageFile() {
        final JFrame frame = new JFrame("Save Image");

        JButton saveImage = new JButton("Browse");
        saveImage.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JFileChooser chooser = new JFileChooser();
                FileNameExtensionFilter filter = new FileNameExtensionFilter(
                        "JPG, GIF, and PNG Images", "jpg", "gif", "png");
                chooser.setFileFilter(filter);
                int returnVal = chooser.showOpenDialog(frame);
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                    File file = chooser.getSelectedFile();
                    System.out.println("You chose to open this file: "
                            + file.getName());
                    BufferedImage image;
                    try {
                        image = ImageIO.read(file);
                        ImageIO.write(image, "jpg",new File("C:\\path\\to\\destination\\" + file.getName()));
                    } catch (IOException ex) {
                        Logger.getLogger(SaveImageFile.class.getName()).log(Level.SEVERE, null, ex);
                    }              
                }
            }
        });
        frame.add(saveImage);
        frame.setLayout(new GridBagLayout());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 300);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                SaveImageFile saveImageFile = new SaveImageFile();
            }
        });
    }
}

【讨论】:

    猜你喜欢
    • 2013-05-02
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    相关资源
    最近更新 更多