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