首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java中的映像报告运行任务的进度。

使用java中的映像报告运行任务的进度。
EN

Stack Overflow用户
提问于 2011-06-11 18:01:55
回答 3查看 788关注 0票数 1

我正在尝试执行一个程序,在为用户显示图形用户界面之后,大约要花费6-7秒的时间执行。这里的问题是,用户必须等待6-7秒,没有任何处理或进度通知。

所以我想要做的是,在执行MainApp ma =新MainApp();代码时,我希望为正在执行该程序的用户显示gif图片。图片代码的显示是用ShowProgressPic spp = new ();编写的

我有一个名为end的布尔数据类型变量,它将在MainApp()构造函数的最后一条语句中设置为true。当MainApp ma = new ();的执行结束时,我希望停止显示gif图像。

请帮我解决这个问题。谢谢你,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-11 18:07:02

假设您的问题涉及Swing GUI,我建议您使用SwingWorker在后台线程中执行长效程序。然后,当线程完成时,您有两种或更多的方式从那里开始。您可以在其done方法中使用SwingWorker调用代码来关闭进度显示,也可以让保存和执行SwingWorker的代码通过PropertyChangeListener侦听SwingWorker,并在状态属性为SwingWorker.StateValue.DONE时采取行动。

票数 2
EN

Stack Overflow用户

发布于 2011-06-11 18:05:20

看看线。您必须将进程加载到与主线程不同的线程中,以显示进度。为了显示进度,您可以使用JProgressBar

下面是一个具有输出打印以显示百分比的部分伪代码示例:

代码语言:javascript
复制
int maxSufftoDo = 500;
new Thread() {
public void run() {
    while not done {
        do part of stuff;
        updateStatus(numOfStuffDone * 100 / maxStufftoDo);
    }
}
}.start();

public void updateStatus(int s) {
    System.out.println(i + "% done");
}
票数 2
EN

Stack Overflow用户

发布于 2011-06-11 18:08:15

您应该在GUI中使用事件和侦听器进行多线程处理(通常也推荐)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6317626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档