单击按钮时创建一个新的 window - Vaadin 14

Creating a new window on button click - Vaadin14

我想创建一个新的 Window 使用:

final Window window = new Window("Window");
this.getUI().addWindow(window);

这是来自 Vaadin 主页 https://demo.vaadin.com/sampler/#ui/structure/window

但不幸的是,我的 IDE 显示以下错误: 构造函数 Window(String) 未定义。

当我删除字符串时,它说:构造函数 Window() 不可见。

这是为什么?在 vaadin 演示中,它工作得很好。

Window class 是 Vaadin 框架的一部分。它不像 rapidclipse 和其他 IDE 那样存在。你必须写你自己的 Window class(通过扩展 Panel)或者你可以从他们的 github.[= 复制 Window class 16=]

参考: https://github.com/vaadin/framework/blob/master/server/src/main/java/com/vaadin/ui/Window.java

您收到此错误,因为您正在尝试访问 rapidclipse 框架的 Window class,该框架显然没有构造函数并且用于其他用途。

Vaadin 14中没有Windowclass。

您在问题中链接的演示页面是关于 Vaadin 8 的。

在 Vaadin Flow (Vaadin 10+) 中,使用 Dialog 而不是旧的 Window。它与旧的 Window 不完全相同 - 例如 Dialog 没有自动最大化或关闭按钮。但是连同您想要在 Dialog 中显示的其他组件,您可以添加例如一个按钮,单击该按钮将关闭对话框。或者当用户使用 dialog.closeOnOutsideClick(true);

在对话框外单击时让对话框关闭

编辑:去看看这个 vaadin 博客 post 一个好看的 Dialog 例子,有视频(代码也链接在那里):https://vaadin.com/blog/new-component-features-and-development-time-improvements-in-vaadin-14