我怎样才能在 Vaadin 中实现这一点。
// inside myButton click event
myButton.setEnabled(false);
doMyActionThatTakeSomeTime();
myButton.setEnabled(true);
在事件内部,该按钮永远不会被禁用,因为 UI 不会刷新。
在 Vaadin 11(或 10)中执行此操作的最佳实践是什么?
- 强制视图刷新?(如何?)
- 把我的动作放在一个线程里面?(如何 ?)
编辑解决方案 -如何使其与 Thread 一起使用
到目前为止,以 Thread 为例(工作):
@Push
@Route(value = "secured")
public class MainView extends VerticalLayout
[ ... ]
// inside click event
UI ui = UI.getCurrent();
new Thread(() -> {
ui.access(() -> {
goButton.setEnabled(false);
ui.push();
});
doMyActionThatTakeSomeTime();
ui.access(() -> {
goButton.setEnabled(true);
ui.push();
});
}).start();