已完成项目的百分比

时间:2013-12-05 16:10:13

标签: java multithreading nio jprogressbar

我有关于Java NIO和Thread的任务。我应该编写一个具有以下四个重要能力的程序:复制,剪切,重命名和删除。我为项目的每个部分制作了4个班级。所有这些都扩展Runnable,在运行中我使用了这样的代码:

fc = new JFileChooser();
fc.showOpenDialog(Copy.this);
File f1 = fc.getSelectedFile();
fc.showOpenDialog(Copy.this);
File f2 = fc.getSelectedFile();
if(copyFile(f1, f2)){
    System.out.println("File Copied");
}

fc是一个JFileChooser类字段,我有一个mainFrame,它有4个按钮,每个按钮都会从每个类开始威胁。我不知道我的方式,我不知道应该是什么样的。我看过两个关于多线程的视频,我不知道这个程序是如何陷入僵局的,或者它是如何运行的,我最大的问题是我希望JProgressBar进行文件复制,文件删除和文件切割,我不知道如何在程序中了解这些级别,以便JProgressBar做到最好。 这是整个项目:https://www.mediafire.com/?yyw8jg1xncfp2xn

1 个答案:

答案 0 :(得分:1)

要获取更新JProgressBar所需的值,最简单的方法是让线程监控目标文件的大小,并将它们与原始文件进行比较。您可以使用f1.length()f2.length()执行此操作。通过比较这两个值,您将能够确定当前操作的状态,无论是删除,复制还是截断文件的大小。或者,您需要在JProgressBar等每个函数中拥有copyFile(...)的句柄,然后您可以根据循环内的迭代更新进度条。有关更详细的答案,我需要查看其余代码。