我对Vaadin和网络应用程序并不陌生。我在使用Vaadin插件Steinwedel从MessageBox
获取所选选项(简单的是或否)时遇到问题。
我需要等待客户端说“是”或“否”,然后运行我的代码,就像在java JOption
中一样。我有一个MessageBox
的类,它返回选项:
int option = MessageBox.showDialog (message, title, QUESTION_YES_NO_OPTION);
但即使我打开MessageBox
,我的代码也会一直运行。
答案 0 :(得分:4)
与传统的桌面GUI框架(如Swing)不同,使用Vaadin,您主要在服务器端编程,并从客户端(具有用户交互的浏览器)收听事件。因此,显示一个对话框不会阻止服务器端代码,因为来自客户端的(HTTP)请求的答案将不会被发送。相反,您应该显示对话框并听取对话框按钮的单击事件。
MessageBox
.createInfo()
.withCaption("Info")
.withMessage("Hello World!")
.withOkButton(() -> System.out.println("Ok pressed."))
.open();
该示例取自附加说明。在这里,他们使用println处理了OK按钮单击。