使用文件通道复制文件时显示图形进度

时间:2016-10-01 12:36:10

标签: java swing file filechannel

我是Swing Applications的新手。

我有一个简单的应用程序,可以将文件从目录复制到另一个目录。要复制文件,我使用FileChannel个实例。我想知道是否可以显示进度条以通知用户已复制了多少文件。

这是我的代码:

public class Foo extends JFrame{
    long size;
    FileChannel inp = null,
                outp= null;
    File sourceFile = new File("C:/test/movie.mkv"),
           destFile = new File("C:/output/movie.mkv");
    public void createUI(){
        JPanel panel = new JPanel();
        JButton btn = new JButton("Copy Files");
        panel.add(btn);
        /*code to create and position the jframe*/
        btn.addActionListener((e)->{
            try {
                inp = new FileInputStream(sourceFile).getChannel();
                outp = new FileOutputStream(destFile).getChannel();
                size = inp.size();
                outp.transferFrom(inp,0,size);
            } catch (Exception e2) {
                System.out.println("FIle not found");
                return;
            }
        });
    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(()->new Foo().createUI());
    }
}

0 个答案:

没有答案