0
java swingからは、長期実行タスクのモーダルダイアログを表示するのに使用されています。バックグラウンドスレッドは、時々ダイアログのステータスラベルとプログレスバーを更新します。vaadinモーダルウィンドウのコンポーネントを更新することはできますか?
vaadinモーダルウィンドウでは、バックグラウンドスレッドから何も変更できません。ウィンドウを閉じることもできません。
これは予期した動作ですか、それとも間違っていますか?
編集:実際には、非モーダルであってもウィンドウを更新できないようです。
Window window = new Window();
// window.setModal(true);
VerticalLayout layout = new VerticalLayout();
Label label = new Label("0");
layout.addComponent(label);
window.setContent(layout);
window.center();
new Thread(() -> {
try
{
Thread.sleep(1000);
System.out.println("update 1");
UI.getCurrent().access(() -> label.setValue("1"));
Thread.sleep(1000);
System.out.println("update 2");
UI.getCurrent().access(() -> label.setValue("2"));
Thread.sleep(1000);
System.out.println("update 3");
UI.getCurrent().access(() -> label.setValue("3"));
Thread.sleep(1000);
System.out.println("close");
UI.getCurrent().access(() -> window.close());
}
catch(InterruptedException e)
{
System.out.println(e);
}
}).start();
UI.getCurrent().addWindow(window);
編集2:私はちょうど私がここで行方不明ですおそらく何であるvaadin push concept、偶然見つけ。