【发布时间】:2010-07-15 18:57:16
【问题描述】:
我在我的 Java 程序中添加了一个加载栏功能,我想知道是否可以设置一个需要完成的进程列表,以便它知道需要完成多少个进程。
例如,将它们保存为字符串?
ArrayList<String> processes = new ArrayList<String>();
processes.add("CSVWriter.createFileOfCompany(\"Random Company\");");
processes.add("FileConverter.convertCSVToXLS(classPath +
\"/Output/Random_Company.csv\");");
for (int i = 0; i < processes.size(); i++) {
// run process
// update loading bar
}
这些对我的程序来说不是真正的方法,但它们与我想要完成的非常相似。
我确定这不是最好的方法,但我想有一些方法来创建这样的列表,以便在运行它们之前知道有多少进程。我设置了一个系统来进一步分解这些过程并显示它们的进度,所以这个栏目前非常精确,但我必须为每个过程编号=/。
也许我只是错过了重点。创建进度条对我来说是全新的体验。
如果有任何关于进度条创建的好文章,请随时发送给我。请记住,我没有使用实际的基于摆动的 GUI。此栏全是 S.O.P 文本。
非常感谢,
贾斯蒂安·迈耶
【问题讨论】:
-
您是否假设您的所有方法都将花费相同的时间来运行?
-
我不希望他们这样做。我基本上想把这些方法分解成相等的块。如果有 5 个调用,它将被分成 5 个块。这些块中的每一个都将从方法中的循环接收信息以缓慢填充它们。想象成这样
[///// | ///// | ///// | ///// | /////].......................[///// | ///// | //... | ..... | .....]表示前两个流程已完成,流程 3 的 2/5 已完成。当然,它看起来更像:[////////////.............] 48% -
我创建它的方法并不像我想要的那样干净,所以我完全愿意接受更好的想法。
-
我在下面从字面上回答了您的问题,但这确实不是实现脚本执行进度条的最佳方式。传统的方法是在每个语句之后手动报告您的进度。请记住,并非所有命令都花费相同的时间。
-
@Gunslinger47:手动报告是什么意思?像:“创建文件 [文件名]...完成”,“转换文件 [文件名]...完成”?那只是看起来不那么干净=/。试图让我的廉价 GUI 看起来尽可能友好。它基本上是一个点击即走的程序。
标签: java arrays methods progress-bar process