我正在处理中使用第二个线程,希望从第二个线程更新进度条。但这对我一点用都没有。它不会更新进度条,直到我手动单击按钮或在ui上执行服务器事件。
UI.getCurrent().access(new Runnable() {
@Override
public void run() {
//update the UI as in your code above
progressBar_1.setValue(new Float(progress));
Notification.show("Preprocessing - 1 Done");
}
});
1条答案
按热度按时间soat7uwm1#
您需要在vaadin应用程序中启用push:
向项目中的vaadin push添加依赖项
为支持异步通信的servlet定义并添加
@com.vaadin.annotations.Push
ui注解:更多信息,例如这里。
此外,所有从外部线程访问vaadin组件(或容器)的权限都必须像在代码中一样正确锁定。