java - Vaadin 8 非模态窗口 CloseListener - 通过在其外部单击关闭

标签 java vaadin vaadin8

我在应用程序中有一个非模式Window,在浏览器 View 的一部分上打开。

setModal(false);

它的内容是一个Horizo​​ntalLayout - 不确定这是否重要。

当此窗口因任何原因关闭时,我希望执行某些操作。为此,我在其中添加了 CloseListener :

addCloseListener(e -> System.out.println("closing the window _____________________"));

当通过在窗口外部单击关闭Window 时,此CloseListener 不会运行,这是它缺少 AFAIS 的唯一情况。我看到How to close a Vaadin subwindow on mouseclick outside of the window?有没有更简单的方法来解决这个问题? 很好的解决方案,但对于我们应用程序的结果来说太长了。

TIA。

最佳答案

您是否尝试过向窗口显示的 View 添加布局点击监听器或任何类型的点击监听器?

addCloseListener 仅在窗口关闭时触发。它不会导致窗口自行关闭。

component.addClickListener(e -> { if(getUI().getWindows().contains(myWindow) //逻辑在这里(删除/隐藏窗口) });

引用https://vaadin.com/api/com/vaadin/event/LayoutEvents.LayoutClickNotifier.html#addLayoutClickListener-com.vaadin.event.LayoutEvents.LayoutClickListener-

关于java - Vaadin 8 非模态窗口 CloseListener - 通过在其外部单击关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50897713/

相关文章:

java - 尝试java中的所有可能性

java - Lambda 表达式抛出异常

带有行索引的 Vaadin 流网格

javascript - 如何在浏览器关闭或选项卡关闭时销毁 Vaadin 8 session ?

java - 这种分组方法有什么问题吗? (分割字符串)

使用rest在neo4j中运行密码查询的java示例

html - Vaadin:强制 CSS 容器在动画后适应全宽

Vaadin 10 用于新项目

gradle - 使用Gradle Vaadin插件时出错

java - 使用 JSmooth 将 Jar 转换为 exe - 找不到主类