java - ZK 进度计无法在没有事件的情况下使用 for 循环

标签 java process zk

我正在使用ZK框架。我只想将大量行插入到我的 MySQL 数据库中。插入数据时需要几秒钟。在那段时间里,我只想显示一个进度表,它告诉用户插入数据库的行数。

我尝试过这样的:

rowCount = qModel.executeInsert();      
for(long j = 1; j <= rowCount; j++)
{
    sum = sum + 100 / rowCount;
    if (j == rowCount)
    {               
        sum = 100;
    }   
    progressMeter.setValue(sum);            
    countLabel.setValue((rowCount - 1) + " Rows inserted");
    BindUtils.postNotifyChange(null, null, countLabel, "_value");
}   

这里rowCount是插入到数据库中的总行数。我知道插入过程后进度表正在更新。 但我希望我的进度表更新后没有繁忙标签。

如果有人知道解决办法,请帮帮我。欢迎所有建议。提前致谢。

最佳答案

其实很简单

只要您处于同一个执行中,您的 GUI 就不会发生任何更新。
您唯一的解决方案是处理多个调用,通过计时器或启用服务器推送来实现。

这一切看起来很复杂,但也有好消息。
Robert Wenzel 写了一篇关于简化长操作的小演讲,其中包括简化此操作的整个基础知识。

请看一下这个:

https://www.zkoss.org/wiki/Small_Talks/2015/January/Simplify_Long_Operation_Handlings

关于java - ZK 进度计无法在没有事件的情况下使用 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40783284/

相关文章:

java - 在 Java 中,如果我将 DatagramPackets 留在 DatagramSocket 中会发生什么?

linux - 重新映射共享库

php - 使用 API/函数调用或使用 Cron Job 方法 - 处理事务的查询 - 你将如何处理它?

java - 如何在 zk 日历组件中触发 dragble 事件

widget - zk:什么时候创建widget子?

java - 如何计算归并排序中的比较次数?

java - 不确定我正在使用继承/多态性问题吗?

java - 向 RESTful Web 服务添加新方法(错误)

c# - 如何在 C# 中使用 [DllImport ("")]?

java - 什么是或如何确定 ZK ViewModel 的生命周期