java - 已完成项目的百分比

标签 java multithreading nio jprogressbar

我有一个关于 Java NIO 和线程的作业。我应该编写一个具有这四种重要功能的程序:复制、剪切、重命名和删除。我为项目的每个部分做了 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

最佳答案

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

关于java - 已完成项目的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20404947/

相关文章:

java - 为什么我无法在java中使用selenium webdriver截屏?

java - 创建模块 Java

c# - 将 Java 转换为 C# 问题

c# - 解决 WinForms 中的跨线程异常

java - NIO 客户端给出异常 : java.net.ConnectException:连接被拒绝:没有更多信息

java - 如何防止Dockerfile中的脚本退出?

c++ - InterlockedCompareExchange128 用法

java - Java中有些线程在 `methodB`,如何保证 "blocked"为 `methodA`?

java - 在运行时转换 NIO channel

java - 获取类路径上文件的绝对路径