为了账号安全,请及时绑定邮箱和手机立即绑定

在批处理文件运行时显示不确定的JProgressBar

在批处理文件运行时显示不确定的JProgressBar

哈士奇WWW 2019-07-03 17:43:16
在批处理文件运行时显示不确定的JProgressBar我已经浏览了很长一段时间,谷歌也在寻找这个问题的答案,但我似乎找不到真正有效的答案。我会从头开始:我创建了一个Java类,它的方法在后台运行一个批处理文件(命令窗口不出现)。这个程序工作得很好,只是对最终用户来说有点混乱,因为批处理文件需要一段时间才能完成-用户将不知道该程序是否仍在运行。批处理脚本执行完后,会出现一个消息对话框,表示它已经完成,但是在运行该方法时到该对话框出现之间的一段时间内,该程序似乎什么也不做。因此,我的问题是:我非常希望显示一个新的框架,其中包含一个文本区域,该区域显示批处理文件的输出。但是,我知道,如果不创建临时文件、给它们写信、读取它们等等,就很难做到这一点。如果可能的话,我宁愿避免。因此,我认为最好在进程运行时显示一个不确定的JProgressBar,并在进程完成时关闭它。不幸的是,我认为Swing不能处理这个问题,因为它需要同时运行多个进程。我听说过一个摇摆工,但我不太确定如何在这种情况下使用。我有下面的SSCCE,它可以工作,但是没有实现进度条。public myClass(){     public static void main(String[] args){         String[] commands = {"cmd.exe", "/C", "C:\\users\\....\\myBat.bat"};         Process p = Runtime.getRuntime().exec(commands);         p.waitFor()         JOptionPane.showMessageDialog(null, "Process finished!");     }}当p.warfor()等待进程时,屏幕上什么也没有。我只想让用户知道进程还在运行。思想?谢谢!
查看完整描述

3 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

为了使它符合我的需要,我得用它一点。它必须是一个单独的类,并将我的进程命令传递给它。我现在有一个类变量和一个Mutator方法来设置值。但出于某种原因,它似乎没有运行批处理文件。

查看完整回答
反对 回复 2019-07-03
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

在添加该类之前,批处理文件将在大约30秒内启动和完成。现在它已经开了一个多小时了(也许两个小时?)还没结束呢

查看完整回答
反对 回复 2019-07-03
  • 3 回答
  • 0 关注
  • 686 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信