【发布时间】:2015-03-05 13:51:23
【问题描述】:
在我的应用程序中,我拥有的是一个持久的过程,它在服务器中处理一些演算(一些车辆的最佳路线等)。我想向用户显示一个进度条,指示进程的当前状态。
理论上,一切似乎都很容易。我的视图中有一个 ProgressBar 对象。这个进度条将通过一个监听器更新,它将被编写为一个普通的接口,比如 IProgressListener,其中一个方法称为 notifyProgress(float pValue)。当在服务器中生成新值(运行 calculate())时,将调用 notifyProgress()。在我看来,它将定义一个 IProgressListener 的实例,覆盖 notifyProggress(float pValue) 方法,该方法将执行 progressBar.setValue(pValue);东西。
不幸的是,在运行我的 webapp 时,进度条一直卡住,没有值更新,直到耗时过程完成。这是进度条快速前进到 100% 结束的时间
有人知道为什么会这样吗?
在此先感谢您。
编辑:
最后,我已经能够让它工作了。我已经替换了 IProgressListener 的用法,并实现了观察者模式。看起来很奇怪,我没有在 ui.access( () -> { //code here }); 之间包装 UI 更新。 sn-p(否则,如果在此处引入 UI 更改将不起作用)。
【问题讨论】:
标签: interface progress-bar listener vaadin vaadin7