为什么不调用 Vaadin Window.ResizeListener

Why Vaadin Window.ResizeListener is not invoked

我有以下 class 如下:-¨

public class ExchangeWindow extends Window implements Button.ClickListener, Window.ResizeListener  {

public ExchangeWindow() {
    center();
    setWidth(600, Unit.PIXELS);
    setHeight(430, Unit.PIXELS);
    setModal(true);
    setResizable(true);
    setImmediate(true);
    addListener(this);
 }

@Override
public void windowResized(ResizeEvent resizeEvent) {
    if(left.isVisible()) {
        //left.setWidth(600, UNITS_PIXELS);
        exchangeTable.setWidth(600, UNITS_PIXELS);
    }
}

我找到了这个 link:https://vaadin.com/forum/thread/117302。我想我的代码与此类似。 windowResized 方法永远不会被调用是否我设置 setImmediate(true);或 setImmediate(false);

我正在使用 Vaadin 7。

怎么了?如何捕捉调整大小事件通知?

根据 link 中的代码示例和 post 的日期(8 年前)判断,您提供的 link 可能是针对 Vaadin6 问题,因为 Vaadin7 was released in 2013.

无论如何,您应该使用 addResizeListener(this);:

而不是 addListener(this);
public class WindowWithResizeListener extends Window implements Button.ClickListener, Window.ResizeListener {

    public WindowWithResizeListener() {
        center();
        setWidth(600, Unit.PIXELS);
        setHeight(430, Unit.PIXELS);
        setModal(true);
        setResizable(true);
        setImmediate(true);
        addResizeListener(this);
    }

    @Override
    public void windowResized(ResizeEvent resizeEvent) {
        Notification.show("Resized!");

    }

    @Override
    public void buttonClick(Button.ClickEvent clickEvent) {

    }
}

还有 Vaadin 7.7.9 的输出: